- 17 Aug, 2020 1 commit
-
-
Z Nguyen-Huu authored
This is a reland of 1b35c0fa Reason for revert: Seems to reliably break a numerics test: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20debug/31516 It was really slow and timeout with debug build run this test mjsunit/math-exp-precision with --optimize-for-size because we resize cache in CSA. Default this to runtime would avoid the timeout. Also with --optimize-for-size, we don't have enough space to allocate full-size cache so avoid to resize cache in this case. In my local PC, time for this test decreases as follows. Before: 52s After: 3s Original change's description: > Improve NumberToString when cache miss and Smi > > Cache miss was handled in runtime before. This change add fast path for > Smi in this case. > > Perf show 30% improvement for the following example. > Before 67 ms > After 42 ms > > const start = new Date(); > const MAX = 1000000; > for (var i = 0; i < MAX; i++) { > i.toString(); > } > const end = new Date(); > console.log("Time :"+ (end-start)); > > Change-Id: I162e9c35f58551ca6a5a0efe79fb7c7b482a8594 > Bug: v8:10477 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332866 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69362} Bug: v8:10477 Change-Id: I892a9007210032640d0bf22e61c8e7ad1a4377c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351398Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69413}
-
- 12 Aug, 2020 2 commits
-
-
Bill Budge authored
This reverts commit 1b35c0fa. Reason for revert: Seems to reliably break a numerics test: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20debug/31516 Original change's description: > Improve NumberToString when cache miss and Smi > > Cache miss was handled in runtime before. This change add fast path for > Smi in this case. > > Perf show 30% improvement for the following example. > Before 67 ms > After 42 ms > > const start = new Date(); > const MAX = 1000000; > for (var i = 0; i < MAX; i++) { > i.toString(); > } > const end = new Date(); > console.log("Time :"+ (end-start)); > > Change-Id: I162e9c35f58551ca6a5a0efe79fb7c7b482a8594 > Bug: v8:10477 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332866 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69362} TBR=jgruber@chromium.org,leszeks@chromium.org,duongn@microsoft.com Change-Id: I80f6bdb0464c0034e6c4a16478848618cef7e046 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10477 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351389Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#69365}
-
Z Nguyen-Huu authored
Cache miss was handled in runtime before. This change add fast path for Smi in this case. Perf show 30% improvement for the following example. Before 67 ms After 42 ms const start = new Date(); const MAX = 1000000; for (var i = 0; i < MAX; i++) { i.toString(); } const end = new Date(); console.log("Time :"+ (end-start)); Change-Id: I162e9c35f58551ca6a5a0efe79fb7c7b482a8594 Bug: v8:10477 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332866 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69362}
-
- 20 May, 2020 1 commit
-
-
Bill Budge authored
This is a reland of 4482f988 It's identical to the original CL so .. TBR=jgruber@chromium.org,tebbi@chromium.org Original change's description: > [torque] Port builtins-number-gen to Torque > > - Ports everything except Add. > > Builtins generated from this CL are slightly larger, e.g. Subtract > is 424 bytes on x64, as opposed to 400 bytes for the CSA version. > See https://crbug.com/v8/10521 > > Bug: v8:9891 > > Change-Id: Id85779eb26d8e51643d8a04f0a75090bc50ef5b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191644 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67910} Bug: v8:9891 Change-Id: I910c95db7bc044b2457364f4bfbbca46f0745bb9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209265 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67926}
-
- 19 May, 2020 2 commits
-
-
Bill Budge authored
This reverts commit 4482f988. Reason for revert: Causes Torque to break UBSAN https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11235? [764/2199] ACTION //:run_torque(//build/toolchain/linux:clang_x64) FAILED: gen/torque-generated/bit-fields-tq.h gen/torque-generated/builtin-definitions-tq.h gen/torqu...(too long) python ../../tools/run.py ./torque -o gen/torque-generated -v8-root ../.. src/builtins/array-copywit...(too long) ../../src/torque/implementation-visitor.cc:778:36: runtime error: 2.14748e+09 is outside the range of representable values of type 'int' Original change's description: > [torque] Port builtins-number-gen to Torque > > - Ports everything except Add. > > Builtins generated from this CL are slightly larger, e.g. Subtract > is 424 bytes on x64, as opposed to 400 bytes for the CSA version. > See https://crbug.com/v8/10521 > > Bug: v8:9891 > > Change-Id: Id85779eb26d8e51643d8a04f0a75090bc50ef5b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191644 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67910} TBR=bbudge@chromium.org,jgruber@chromium.org,tebbi@chromium.org Change-Id: Ib124c893753973243563e32c25bc727a5df2ca53 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9891 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209264Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#67911}
-
Bill Budge authored
- Ports everything except Add. Builtins generated from this CL are slightly larger, e.g. Subtract is 424 bytes on x64, as opposed to 400 bytes for the CSA version. See https://crbug.com/v8/10521 Bug: v8:9891 Change-Id: Id85779eb26d8e51643d8a04f0a75090bc50ef5b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191644 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67910}
-
- 10 Jan, 2020 1 commit
-
-
Seth Brenith authored
This change moves the definitions of the bitfield flags used by Symbol and Map to Torque. Symbol could directly follow the pattern established by SharedFunctionInfo, but Map required some other changes: - Until now, Torque bitfield definitions have required unsigned types. I thought that this would be the least-surprising behavior, since we never sign-extend when decoding bitfield values. However, I believe that the amount of churn involved in making ElementsKind be unsigned outweighs the benefit we were getting from this restriction (and similar difficulties are likely to arise in converting other bitfield structs to Torque), so this CL updates Torque to allow signed bitfield values. - If we try to make Map extend from all of the generated classes that define its flags, we end up with class sizing problems because some compilers only apply empty base class optimization to the first in a row of empty base classes. We could work around this issue by generating macros instead of classes, but I took this as an opportunity for a minor clean-up instead: rather than having bitfield definitions for several different bitfield structs all jumbled together in Map, they can be split up. I think this makes the code a little easier to follow, but if others disagree I'm happy to implement macro generation instead. Change-Id: Ibf339b0be97f72d740bf1daa8300b471912faeba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1988934Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#65701}
-
- 10 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This CL generalizes and improves how we handle allocations in Torque. Overview of the changes: - Remove obsolete special handling for JSObject classes, since it was incomplete: It breaks as soon as slack tracking is active. - Handle array initialization using slices. - Properly align allocation sizes. This enabled allocating strings. - Port AllocateSeq{One,Two}ByteString to Torque, which is much easier now than the old CSA code since allocation size alignment and large-object space allocation just happen out-of-the-box. - Remove obsolete or unnecessary intrinsics, some of them turn into macros in the torque_internal namespace. - Distinguish between header size and overall size for ClassType, make size optional and only defined when it is statically known. Bug: v8:10004 v8:7793 Change-Id: I623db233e7fb4deed54e8039ae0c24705e9a44e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1932356Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65397}
-
- 11 Nov, 2019 1 commit
-
-
Tobias Tebbi authored
This creates a .tq file in src/objects for each src/objects/*.h file with Torque-defined classes and moves the object definitions and corresponding helpers/macros there. In addition, we create files convert.tq and cast.tq in src/builtins to move the casts and conversions to. Since Torque-generated .cc files end up as .o files in the same directory, there cannot be two .tq files of the same name. Thus it was necessary to rename src/builtins/arguments.tq and src/builtins/string.tq to not clash with the new files in src/objects. This is a mechanical change that only moves code. Design doc: http://doc/1fh4OUMjQMnQdJm3aiAPXQUNdgbQugkRGdJzDh8hmyzk Bug: v8:9861 v8:9810 v8:7793 Change-Id: I9c54cb50f32b9ae0fb41752199515133eb59ea5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910100Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64892}
-