New issue
Advanced search Search tips
Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Cc:
HW: ----
NextAction: ----
OS: ----
Priority: ----
Type: Bug



Sign in to add a comment
link

Issue 8344: Improve performance of 31bit Smis on 64bit architectures

Reported by sigurds@chromium.org, Oct 22 Project Member

Issue description

This is the tracking bug for performance improvements for 31bit Smis on 64bit architectures.
 

Comment 1 by bugdroid1@chromium.org, Oct 24

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a124f0da9b15509ae56dc9ad15b1e798ec71982a

commit a124f0da9b15509ae56dc9ad15b1e798ec71982a
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Wed Oct 24 13:26:35 2018

[ptr-compr] Add gn arg for 31bit Smis on 64bit arch

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I44e62d53bc7b341a685eeca5691a86e915fcce44
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1292064
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56940}
[modify] https://crrev.com/a124f0da9b15509ae56dc9ad15b1e798ec71982a/BUILD.gn
[modify] https://crrev.com/a124f0da9b15509ae56dc9ad15b1e798ec71982a/include/OWNERS
[modify] https://crrev.com/a124f0da9b15509ae56dc9ad15b1e798ec71982a/include/v8-internal.h

Comment 2 by bugdroid1@chromium.org, Oct 29

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ca166b2882eaccd3794d193b666df59a9ffb41d7

commit ca166b2882eaccd3794d193b666df59a9ffb41d7
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Mon Oct 29 13:39:36 2018

[cleanup] Improve readability in instruction selector

Change-Id: I21a87236c5a65bfd44da10efa57063e2a96e3779
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1304533
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57086}
[modify] https://crrev.com/ca166b2882eaccd3794d193b666df59a9ffb41d7/src/compiler/x64/instruction-selector-x64.cc

Comment 3 by bugdroid1@chromium.org, Oct 29

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5160881ad20d3f02811f34d2407b7702fb052746

commit 5160881ad20d3f02811f34d2407b7702fb052746
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Mon Oct 29 13:59:16 2018

[instruction-selector-x64] Optimize truncating loads

Change-Id: Ia970b1281d73289812c4f83c722eea87c31863ba
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1304534
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57088}
[modify] https://crrev.com/5160881ad20d3f02811f34d2407b7702fb052746/src/compiler/x64/instruction-selector-x64.cc

Comment 4 by bugdroid1@chromium.org, Oct 30

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/20aa22fc56e52e54cc7109a3424581bcc672f6a2

commit 20aa22fc56e52e54cc7109a3424581bcc672f6a2
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Tue Oct 30 08:19:25 2018

Use 32bit shifts if Smis are 31bit on x64

Change-Id: Ic0513662eed0bd47bbc8c2ecec8fadd6b62f58f5
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1304550
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57107}
[modify] https://crrev.com/20aa22fc56e52e54cc7109a3424581bcc672f6a2/src/compiler/effect-control-linearizer.cc

Comment 5 by bugdroid1@chromium.org, Oct 30

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/738c2a9fc65efbec42e16274ea92a6291acf0994

commit 738c2a9fc65efbec42e16274ea92a6291acf0994
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Tue Oct 30 08:56:20 2018

[instruction-selector-x64] Fold truncate into Word32Sar

Change-Id: Iba905f4c1f2e5aff70953bdfb0009b417a959a41
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1304548
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57109}
[modify] https://crrev.com/738c2a9fc65efbec42e16274ea92a6291acf0994/src/compiler/x64/instruction-selector-x64.cc

Comment 6 by bugdroid1@chromium.org, Oct 30

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/374dc59116f9aa45490082a8669cc2d0bdd02efb

commit 374dc59116f9aa45490082a8669cc2d0bdd02efb
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Tue Oct 30 09:15:27 2018

[instruction-selector-x64] Remove over-restrictive check

Change-Id: I6a220b6043da8f9c8c036c92e3f4da6ca7d801d4
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1306436
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57111}
[modify] https://crrev.com/374dc59116f9aa45490082a8669cc2d0bdd02efb/src/compiler/x64/instruction-selector-x64.cc

Comment 7 by bugdroid1@chromium.org, Nov 22

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9b0e4e132f7722d95c9e1901ef294c24c15ebe9e

commit 9b0e4e132f7722d95c9e1901ef294c24c15ebe9e
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Thu Nov 22 09:19:49 2018

[turbofan] Make typed optimization more powerful

This CL moves optimization capabilities from typed lowering to typed
optimization. In particular, this allows retyping of Speculative to
number optimizations depending on their input types. This can save type
checks if we know that inputs are already in SafeIntegerRange and uses
are truncating to 32bit integers.

This change recovers the performance lost to 31bit Smis on
Octane/crypto on x64:
32bit nosmis           avg 30,984.84 stddev 180.52
31bit smis (w/o patch) avg 29,438.52 stddev 120.30  -4.99%
31bit smis             avg 31,274.52 stddev 176.26  +0.93%  +6.24%

Change-Id: I86d6e37305262336f4f7bd46aac0d2cbca11e8c1
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1323729
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57717}
[modify] https://crrev.com/9b0e4e132f7722d95c9e1901ef294c24c15ebe9e/src/compiler/js-typed-lowering.cc
[modify] https://crrev.com/9b0e4e132f7722d95c9e1901ef294c24c15ebe9e/src/compiler/js-typed-lowering.h
[modify] https://crrev.com/9b0e4e132f7722d95c9e1901ef294c24c15ebe9e/src/compiler/pipeline.cc
[modify] https://crrev.com/9b0e4e132f7722d95c9e1901ef294c24c15ebe9e/src/compiler/typed-optimization.cc
[modify] https://crrev.com/9b0e4e132f7722d95c9e1901ef294c24c15ebe9e/src/compiler/typed-optimization.h
[modify] https://crrev.com/9b0e4e132f7722d95c9e1901ef294c24c15ebe9e/test/mjsunit/compiler/number-modulus.js

Comment 8 by bugdroid1@chromium.org, Nov 30

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7a491d032093e61057fdb9811c9f09aee9f4df23

commit 7a491d032093e61057fdb9811c9f09aee9f4df23
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Fri Nov 30 13:11:07 2018

Fix arm64 bug in 31bit Smis

Change-Id: Id73e9e4862d3b7751b6867183a43cfa7a0cdef52
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1355145
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57966}
[modify] https://crrev.com/7a491d032093e61057fdb9811c9f09aee9f4df23/include/v8-internal.h
[modify] https://crrev.com/7a491d032093e61057fdb9811c9f09aee9f4df23/src/compiler/effect-control-linearizer.cc

Comment 9 by bugdroid1@chromium.org, Dec 11

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c1bf25bb68d30cc0aa346226c899b724513508b3

commit c1bf25bb68d30cc0aa346226c899b724513508b3
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Tue Dec 11 14:48:56 2018

Enable 31bit Smis everywhere

This is a experiment to see how performance is impacted. If we tank
too much, we can revert this change.

Change-Id: I01be33f5dd78aee6a5beecdc62adbaa6c3850eb1
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1355279
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58157}
[modify] https://crrev.com/c1bf25bb68d30cc0aa346226c899b724513508b3/BUILD.gn
[modify] https://crrev.com/c1bf25bb68d30cc0aa346226c899b724513508b3/include/v8-internal.h

Comment 10 by bugdroid1@chromium.org, Dec 13

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/bf16b8d39547cccffd79fa3fa01f2d925335b540

commit bf16b8d39547cccffd79fa3fa01f2d925335b540
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Thu Dec 13 16:19:40 2018

Revert "Enable 31bit Smis everywhere"

This reverts commit c1bf25bb68d30cc0aa346226c899b724513508b3.

Reason for revert: We got many regressions:

https://chromeperf.appspot.com/group_report?rev=58157

Original change's description:
> Enable 31bit Smis everywhere
> 
> This is a experiment to see how performance is impacted. If we tank
> too much, we can revert this change.
> 
> Change-Id: I01be33f5dd78aee6a5beecdc62adbaa6c3850eb1
> Bug: v8:8344
> Reviewed-on: https://chromium-review.googlesource.com/c/1355279
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58157}

TBR=jarin@chromium.org,sigurds@chromium.org,ishell@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:8344
Change-Id: I407cb99743a08452edcecfc2e945ef98509e8d32
Reviewed-on: https://chromium-review.googlesource.com/c/1375911
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58227}
[modify] https://crrev.com/bf16b8d39547cccffd79fa3fa01f2d925335b540/BUILD.gn
[modify] https://crrev.com/bf16b8d39547cccffd79fa3fa01f2d925335b540/include/v8-internal.h

Comment 12 by bugdroid1@chromium.org, Dec 19

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4ee489b8b0b0c74036e1e5d1cf9171c37f8a7efa

commit 4ee489b8b0b0c74036e1e5d1cf9171c37f8a7efa
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Wed Dec 19 11:22:10 2018

[turbofan] Improve constant handling in representation change

Change-Id: I68ede2cda0441cd9a032318462fe3a085480a1dd
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1380111
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58354}
[modify] https://crrev.com/4ee489b8b0b0c74036e1e5d1cf9171c37f8a7efa/src/compiler/representation-change.cc

Comment 13 by bugdroid1@chromium.org, Dec 19

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4aa97de1aff31070e04af573c95e2c955b83b640

commit 4aa97de1aff31070e04af573c95e2c955b83b640
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Wed Dec 19 12:10:50 2018

[conversions] Speed up double to CString conversion

This addresses most of the regression in of
Kraken's json-stringify-tinderbox-orig with
31bit Smis: Many object properties become heap
numbers, and printing an integer which is
represented as a double is slower than printing
the integer directly.

Change-Id: I9a14c4da61721b6c3f22e88145acc6a61ed4a419
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1382741
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58358}
[modify] https://crrev.com/4aa97de1aff31070e04af573c95e2c955b83b640/src/conversions.cc
[modify] https://crrev.com/4aa97de1aff31070e04af573c95e2c955b83b640/src/conversions.h
[modify] https://crrev.com/4aa97de1aff31070e04af573c95e2c955b83b640/test/unittests/BUILD.gn
[add] https://crrev.com/4aa97de1aff31070e04af573c95e2c955b83b640/test/unittests/conversions-unittest.cc

Comment 14 by bugdroid, Jan 31

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0194eb58674a12497b546172144e57aa25a2fdf9

commit 0194eb58674a12497b546172144e57aa25a2fdf9
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Thu Jan 31 15:27:16 2019

Fix pointer-compression related #defines

1) Ensure 31bit Smis are enabled if pointer compression is.
2) Enable some code for 31bit Smis

Bug: v8:8344
Change-Id: Ib1e68ebfcfd49e16d1548879b7670c88dc73449b
Reviewed-on: https://chromium-review.googlesource.com/c/1445979
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59248}
[modify] https://crrev.com/0194eb58674a12497b546172144e57aa25a2fdf9/BUILD.gn
[modify] https://crrev.com/0194eb58674a12497b546172144e57aa25a2fdf9/src/arm64/macro-assembler-arm64.cc
[modify] https://crrev.com/0194eb58674a12497b546172144e57aa25a2fdf9/src/x64/macro-assembler-x64.cc

Comment 15 by bugdroid, Jan 31

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b43e9d5e75856276654d1781449ea683944d3a1f

commit b43e9d5e75856276654d1781449ea683944d3a1f
Author: Sigurd Schneider <sigurds@chromium.org>
Date: Thu Jan 31 16:07:33 2019

Reland "Enable 31bit Smis everywhere"

This is a reland of c1bf25bb68d30cc0aa346226c899b724513508b3

Node bot will turn green after github.com/v8/node/pull/89/
has landed.

Original change's description:
> Enable 31bit Smis everywhere
>
> This is a experiment to see how performance is impacted. If we tank
> too much, we can revert this change.
>
> Change-Id: I01be33f5dd78aee6a5beecdc62adbaa6c3850eb1
> Bug: v8:8344
> Reviewed-on: https://chromium-review.googlesource.com/c/1355279
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58157}

Bug: v8:8344
Change-Id: I85a6e5c479f1090f50df3df042571227279a0692
Reviewed-on: https://chromium-review.googlesource.com/c/1448314
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59251}
[modify] https://crrev.com/b43e9d5e75856276654d1781449ea683944d3a1f/BUILD.gn

Comment 16 by bugdroid, Feb 1

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5942be932e151aaaed276b81ce17cfcaca6cd73f

commit 5942be932e151aaaed276b81ce17cfcaca6cd73f
Author: Maya Lekova <mslekova@chromium.org>
Date: Fri Feb 01 09:17:47 2019

Revert "Reland "Enable 31bit Smis everywhere""

This reverts commit b43e9d5e75856276654d1781449ea683944d3a1f.

Reason for revert: Speculative revert, possibly breaking layout tests - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/29678

Original change's description:
> Reland "Enable 31bit Smis everywhere"
> 
> This is a reland of c1bf25bb68d30cc0aa346226c899b724513508b3
> 
> Node bot will turn green after github.com/v8/node/pull/89/
> has landed.
> 
> Original change's description:
> > Enable 31bit Smis everywhere
> >
> > This is a experiment to see how performance is impacted. If we tank
> > too much, we can revert this change.
> >
> > Change-Id: I01be33f5dd78aee6a5beecdc62adbaa6c3850eb1
> > Bug: v8:8344
> > Reviewed-on: https://chromium-review.googlesource.com/c/1355279
> > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> > Reviewed-by: Igor Sheludko <ishell@chromium.org>
> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#58157}
> 
> Bug: v8:8344
> Change-Id: I85a6e5c479f1090f50df3df042571227279a0692
> Reviewed-on: https://chromium-review.googlesource.com/c/1448314
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59251}

TBR=jarin@chromium.org,sigurds@chromium.org,ishell@chromium.org

Change-Id: Ie388de7e1cc28fcf8bc576f564f3b463002bf1b4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1449533
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59272}
[modify] https://crrev.com/5942be932e151aaaed276b81ce17cfcaca6cd73f/BUILD.gn

Sign in to add a comment