- 23 Oct, 2019 1 commit
-
-
Clemens Backes authored
The same change on the {CopyChars} function gave an unexpected 10-20% speedup on microbenchmarks across platforms (ia32, x64, Atom_x64). This CL explores whether a similar change generally speeds up {MemCopy} and {MemMove} (only on x64 for now). If this is the case, we might be able to carefully extend the same pattern to other platforms and remove custom assembly implementations without too much regression. R=leszeks@chromium.org Bug: v8:9810 Change-Id: Ib9674807b67cd2a463680b97a91ae1b41c3be65b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871607Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64498}
-
- 19 Oct, 2019 1 commit
-
-
Clemens Backes authored
Local testing shows that this switch for small counts (up to size 16) is significantly faster than the default {std::copy_n} (by up to 20%, e.g. for the "join-int" js perf test). It's also faster than just a loop covering all sizes up to 16. R=leszeks@chromium.org CC=jkummerow@chromium.org Bug: chromium:1006157 Change-Id: I4d179f064704261fa18f453c23c04ee0b351e942 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864831Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64397}
-
- 07 Oct, 2019 1 commit
-
-
Clemens Backes authored
This CL fixes the overlap check by using {<=} instead of {<}. This allows us to always use {std::copy_n}, which should fall back to {memcpy} internally (instead of the potentially slower {memmove} we were using before). This might also fix the regressions seen mostly on atom CPUs. R=leszeks@chromium.org Bug: chromium:1006157 Change-Id: Ib61048d65e99a9e7edac5ed894ceaf9e26ad4409 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1844781Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64131}
-
- 18 Sep, 2019 2 commits
-
-
Clemens Hammacher authored
This is an unmodified reland of 60624b56. Nosnap bots do not block LKGR any more: https://crbug.com/v8/9737#c10. Original change's description: > Disallow nullptr arguments for {CopyChars} > > This allows to remove special casing for the {count == 0} case, which > was needed because {memmove} does not accept {nullptr} arguments even > if the {count} is zero. > > R=leszeks@chromium.org > > Bug: v8:9396 > Change-Id: Iaef3cdbbffa74c2ba1c4e4501dafd943282cbcd9 > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807366 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63838} TBR=leszeks@chromium.org Bug: v8:9396 Change-Id: I6ab13575f13df060b450ff105e4b9db516671dcf Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1809365Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63863}
-
Clemens Hammacher authored
This is an unmodified reland of 9febc505. Nosnap bots do not block LKGR any more: https://crbug.com/v8/9737#c10. Original change's description: > Reland "Remove all custom CopyCharsUnsigned implementations" > > This is a reland of 5d8c4890 > > Original change's description: > > Remove all custom CopyCharsUnsigned implementations > > > > It's unclear whether the custom implementation have any advantage over > > the standard library one's. > > Since we update our toolchain and standard library regularly, it might > > well be the case that the custom implementations are slower by now. > > > > Thus this CL removes all {CopyCharsUnsigned} implementations and > > implements {CopyChars} generically using {std::copy_n}. > > > > Note that this does not touch the {MemMove} and {MemCopy} functions > > yet, as we have seen regressions when trying to remove them before > > (https://crbug.com/v8/8675#c5). > > > > R=leszeks@chromium.org > > > > Bug: v8:9396 > > Change-Id: I97a183afebcccd2fbb567bdba02e827331475608 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800577 > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#63808} > > Bug: v8:9396 > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng > Change-Id: I9cd754ebe6b802bb4aabd6d2a448de41da040874 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807357 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63823} TBR=leszeks@chromium.org Bug: v8:9396 Change-Id: I793524d76b8b9c93d2a98c73e8d72967880fe1cf Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1809362 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63857}
-
- 17 Sep, 2019 3 commits
-
-
Adam Klein authored
This reverts commits 9febc505 (along with followup commit 60624b56). Reason for revert: Breaks win32 nosnap shared, blocking lkgr & roll: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20nosnap%20-%20shared/35145 nosnap bots may be deprecated, but as long as they're in LKGR we need to mind them. Original change's description: > Reland "Remove all custom CopyCharsUnsigned implementations" > > This is a reland of 5d8c4890 > > Original change's description: > > Remove all custom CopyCharsUnsigned implementations > > > > It's unclear whether the custom implementation have any advantage over > > the standard library one's. > > Since we update our toolchain and standard library regularly, it might > > well be the case that the custom implementations are slower by now. > > > > Thus this CL removes all {CopyCharsUnsigned} implementations and > > implements {CopyChars} generically using {std::copy_n}. > > > > Note that this does not touch the {MemMove} and {MemCopy} functions > > yet, as we have seen regressions when trying to remove them before > > (https://crbug.com/v8/8675#c5). > > > > R=leszeks@chromium.org > > > > Bug: v8:9396 > > Change-Id: I97a183afebcccd2fbb567bdba02e827331475608 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800577 > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#63808} > > Bug: v8:9396 > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng > Change-Id: I9cd754ebe6b802bb4aabd6d2a448de41da040874 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807357 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63823} TBR=leszeks@chromium.org,clemensh@chromium.org Change-Id: Ic53ab2293d5dc7722a1121d1aa1159328a6ed8f5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9396 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1808035Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#63854}
-
Clemens Hammacher authored
This allows to remove special casing for the {count == 0} case, which was needed because {memmove} does not accept {nullptr} arguments even if the {count} is zero. R=leszeks@chromium.org Bug: v8:9396 Change-Id: Iaef3cdbbffa74c2ba1c4e4501dafd943282cbcd9 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807366Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63838}
-
Clemens Hammacher authored
This is a reland of 5d8c4890 Original change's description: > Remove all custom CopyCharsUnsigned implementations > > It's unclear whether the custom implementation have any advantage over > the standard library one's. > Since we update our toolchain and standard library regularly, it might > well be the case that the custom implementations are slower by now. > > Thus this CL removes all {CopyCharsUnsigned} implementations and > implements {CopyChars} generically using {std::copy_n}. > > Note that this does not touch the {MemMove} and {MemCopy} functions > yet, as we have seen regressions when trying to remove them before > (https://crbug.com/v8/8675#c5). > > R=leszeks@chromium.org > > Bug: v8:9396 > Change-Id: I97a183afebcccd2fbb567bdba02e827331475608 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800577 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63808} Bug: v8:9396 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Change-Id: I9cd754ebe6b802bb4aabd6d2a448de41da040874 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807357Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63823}
-
- 16 Sep, 2019 3 commits
-
-
Irina Yatsenko authored
Bug: v8:9739 Change-Id: I6ec23018e6e2725e47efcc9a5d95dda3713d064e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803792 Commit-Queue: Irina Yatsenko <irinayat@microsoft.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#63812}
-
Adam Klein authored
This reverts commit 5d8c4890. Reason for revert: Fails on UBSan bot: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/7946 Original change's description: > Remove all custom CopyCharsUnsigned implementations > > It's unclear whether the custom implementation have any advantage over > the standard library one's. > Since we update our toolchain and standard library regularly, it might > well be the case that the custom implementations are slower by now. > > Thus this CL removes all {CopyCharsUnsigned} implementations and > implements {CopyChars} generically using {std::copy_n}. > > Note that this does not touch the {MemMove} and {MemCopy} functions > yet, as we have seen regressions when trying to remove them before > (https://crbug.com/v8/8675#c5). > > R=leszeks@chromium.org > > Bug: v8:9396 > Change-Id: I97a183afebcccd2fbb567bdba02e827331475608 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800577 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63808} TBR=leszeks@chromium.org,clemensh@chromium.org Change-Id: Ia16da942c7c28ba71076d1e3b0b8a6388a4ba359 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9396 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1806103Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#63810}
-
Clemens Hammacher authored
It's unclear whether the custom implementation have any advantage over the standard library one's. Since we update our toolchain and standard library regularly, it might well be the case that the custom implementations are slower by now. Thus this CL removes all {CopyCharsUnsigned} implementations and implements {CopyChars} generically using {std::copy_n}. Note that this does not touch the {MemMove} and {MemCopy} functions yet, as we have seen regressions when trying to remove them before (https://crbug.com/v8/8675#c5). R=leszeks@chromium.org Bug: v8:9396 Change-Id: I97a183afebcccd2fbb567bdba02e827331475608 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800577 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63808}
-
- 28 May, 2019 1 commit
-
-
Clemens Hammacher authored
Especially for function types, this increases readability significantly. Also the style guide recommends for 'using' over 'typedef'. R=mstarzinger@chromium.org Bug: v8:9183 Change-Id: If2d17863de39383f5a35e089298d37408791ce4b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631415 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61872}
-
- 27 May, 2019 1 commit
-
-
Clemens Hammacher authored
This replaces all typedefs that define types and not functions by the equivalent "using" declaration. This was done mostly automatically using this command: ag -l '\btypedef\b' src test | xargs -L1 \ perl -i -p0e 's/typedef ([^*;{}]+) (\w+);/using \2 = \1;/sg' Patchset 2 then adds some manual changes for typedefs for pointer types, where the regular expression did not match. R=mstarzinger@chromium.org TBR=yangguo@chromium.org, jarin@chromium.org Bug: v8:9183 Change-Id: I6f6ee28d1793b7ac34a58f980b94babc21874b78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631409 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61849}
-
- 23 May, 2019 1 commit
-
-
Yang Guo authored
NOPRESUBMIT=true TBR=mstarzinger@chromium.org Bug: v8:9247 Change-Id: I4cd6b79a1c2cba944f6f23caed59d4f1a4ee358b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624217 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61790}
-
- 06 Mar, 2019 1 commit
-
-
Igor Sheludko authored
... when pointer compression is enabled and some number of cleanups. Bug: v8:7703 Change-Id: If7344abf68a1c4d54e4a79d066dc185f25055d7d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1477737 Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60056}
-
- 27 Feb, 2019 1 commit
-
-
Igor Sheludko authored
This CL also unifies CopyWords() and CopyBytes() implementations. Bug: v8:7703 Change-Id: I0b2e2f35c0c651e46231c4e4286c705634dce02b Reviewed-on: https://chromium-review.googlesource.com/c/1491602Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59912}
-
- 18 Jan, 2019 1 commit
-
-
Igor Sheludko authored
Bug: v8:8477, v8:8562 Change-Id: Ieb677e0989f77ed207567d468faec0bf92752967 Reviewed-on: https://chromium-review.googlesource.com/c/1388529Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#58922}
-
- 16 Jan, 2019 1 commit
-
-
Jakob Gruber authored
On ia32, arm and mips we generate miscellaneous memcpy-related functions at runtime: arm: memcpy for uint8-uint8 and uint16-uint8 {dest-source} pairs. ia32: memmove mips: memcpy uint8-uint8 In jitless mode, runtime codegen is disallowed, so these must be converted into builtins. As far as I can tell, the mips64 files were dead code (#ifdef'd to V8_HOST_ARCH_MIPS instead of MIPS64). Note also the slightly changed implementation of ia32's MemMove's jump tables. Bug: v8:8675 Change-Id: I5dc2a50fcbad332ce9f78228425b987b0d9acdf3 Reviewed-on: https://chromium-review.googlesource.com/c/1407067Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58839}
-
- 14 Jan, 2019 1 commit
-
-
Jakob Gruber authored
This reverts commit 4a9f186b. Reason for revert: Regresses microbenchmarks. https://crbug.com/v8/8675#c5 Original change's description: > [ia32] Remove custom MemMove function > > It isn't clear whether our custom generated MemMove function provides > any benefits over std::memmove. This is an attempt to remove it. If > bots seem unhappy we can revert. > > Bug: v8:7777,v8:8675 > Change-Id: I7f1a6e3050b6e635618593c04f7d51e448426ee2 > Reviewed-on: https://chromium-review.googlesource.com/c/1405854 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58748} TBR=jkummerow@chromium.org,jgruber@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7777, v8:8675 Change-Id: Ia4ad37070f433f76b1158e90835162aefe38abdd Reviewed-on: https://chromium-review.googlesource.com/c/1407063Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58766}
-
- 11 Jan, 2019 1 commit
-
-
Jakob Gruber authored
It isn't clear whether our custom generated MemMove function provides any benefits over std::memmove. This is an attempt to remove it. If bots seem unhappy we can revert. Bug: v8:7777,v8:8675 Change-Id: I7f1a6e3050b6e635618593c04f7d51e448426ee2 Reviewed-on: https://chromium-review.googlesource.com/c/1405854 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58748}
-
- 29 Nov, 2018 1 commit
-
-
Ben L. Titzer authored
This CL moves a number of memory-related methods out of utils into its own header, since utils.h is included in many places that do not need these methods. R=clemensh@chromium.org,mstarzinger@chromium.org Change-Id: I5155baf329844784286413408c05c7108b789020 Reviewed-on: https://chromium-review.googlesource.com/c/1354889 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#57948}
-