- 04 Feb, 2022 1 commit
-
-
Nico Hartmann authored
This is a reland of 517ed4ad Original change's description: > Reland "[Torque] Generalize Torque literals to larger size" > > Previously, literals in Torque were stored as double values, which > made it impossible to precisely represent 64 bit integer values. > This CL replaces the old literal expression with an integer and > floating point literal expression that are unbounded in size. We > allow implicit conversion of these literals to arbitary integer > and floating point types respectively and insert a corresponding > bounds check into generated CSA. > > Changes in the reland: Simplified IntegerLiteral to single digit. > > Bug: v8:7793, chromium:1289282 > Change-Id: I31c762c2f31165c7a1d0b07842b764e5851ce189 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406750 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78811} Bug: v8:7793, chromium:1289282 Change-Id: I7aadc4d2c9494f03eae85e94949c8f4cab7a075c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3437047Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78939}
-
- 28 Jan, 2022 1 commit
-
-
Nico Hartmann authored
This reverts commit 517ed4ad. Reason for revert: There still seems to be an issue on V8 Win msvc related to this CL (https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20msvc/20568/overview). Original change's description: > Reland "[Torque] Generalize Torque literals to larger size" > > Previously, literals in Torque were stored as double values, which > made it impossible to precisely represent 64 bit integer values. > This CL replaces the old literal expression with an integer and > floating point literal expression that are unbounded in size. We > allow implicit conversion of these literals to arbitary integer > and floating point types respectively and insert a corresponding > bounds check into generated CSA. > > Changes in the reland: Simplified IntegerLiteral to single digit. > > Bug: v8:7793, chromium:1289282 > Change-Id: I31c762c2f31165c7a1d0b07842b764e5851ce189 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406750 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78811} Bug: v8:7793, chromium:1289282 Change-Id: I818cec9625fbd827a4a30088d8c8b759fb6c50d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3424484 Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78847}
-
- 27 Jan, 2022 1 commit
-
-
Nico Hartmann authored
Previously, literals in Torque were stored as double values, which made it impossible to precisely represent 64 bit integer values. This CL replaces the old literal expression with an integer and floating point literal expression that are unbounded in size. We allow implicit conversion of these literals to arbitary integer and floating point types respectively and insert a corresponding bounds check into generated CSA. Changes in the reland: Simplified IntegerLiteral to single digit. Bug: v8:7793, chromium:1289282 Change-Id: I31c762c2f31165c7a1d0b07842b764e5851ce189 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406750Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78811}
-
- 20 Jan, 2022 1 commit
-
-
Nico Hartmann authored
This reverts commit 757830b0. Reason for revert: Speculatively revert due to a number of performance regressions Original change's description: > [Torque] Generalize Torque literals to larger size > > Previously, literals in Torque were stored as double values, which > made it impossible to precisely represent 64 bit integer values. > This CL replaces the old literal expression with an integer and > floating point literal expression that are unbounded in size. We > allow implicit conversion of these literals to arbitary integer > and floating point types respectively and insert a corresponding > bounds check into generated CSA. > > Bug: v8:7793 > Change-Id: I46c231aab92bc2f0c26955d1876079f306b358c6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329792 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78671} Bug: v8:7793 Change-Id: I9896e28b3c69b8cf2488bf93e993ec320d8c5d2e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401866Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#78706}
-
- 18 Jan, 2022 1 commit
-
-
Nico Hartmann authored
Previously, literals in Torque were stored as double values, which made it impossible to precisely represent 64 bit integer values. This CL replaces the old literal expression with an integer and floating point literal expression that are unbounded in size. We allow implicit conversion of these literals to arbitary integer and floating point types respectively and insert a corresponding bounds check into generated CSA. Bug: v8:7793 Change-Id: I46c231aab92bc2f0c26955d1876079f306b358c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329792Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78671}
-
- 08 Dec, 2021 1 commit
-
-
Nico Hartmann authored
to src/bigint/bitwise.cc. Bug: v8:11515 Change-Id: I20f8aebab138651247cedcd85460e40fbc255d98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310802Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78290}
-
- 09 Nov, 2021 1 commit
-
-
Al Muthanna Athamina authored
We want to skip the readability/check rule on the bigint directory while keeping the rest of the linting. Bug: v8:12024 Change-Id: I56f84554af9aa44d4436249916269b5441d4fbaa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3264221Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Almothana Athamneh <almuthanna@chromium.org> Cr-Commit-Position: refs/heads/main@{#77796}
-
- 05 Nov, 2021 1 commit
-
-
Camillo Bruni authored
Change-Id: Ie5d8ec9030df9f838522b4531205e71394a988da Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3263884 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Auto-Submit: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77737}
-
- 24 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
Bug: v8:12244,v8:12245 Change-Id: I60eaad6a96f227a0c39f2f79806b38a2080296ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3182220 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#77047}
-
- 17 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
No algorithmic changes, just cleaning up. Bug: v8:11515 Change-Id: Ib173713a1191d443faf2aebbcc31ff7608823436 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3151957Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#76920}
-
- 15 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
The very last part skipped the max_digits check, and earlier parts forgot to account for that in their check. The reason why the last part originally got special treatment no longer applies, so we can fix this bug by removing the special case, simplifying the overall logic. Fixed: chromium:1248972 Change-Id: I1857dd8b63c00f9bdfb9237f2ea3621ecc1339e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160522 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#76842}
-
- 13 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
No asymptotic improvements, and none are planned either. Minor speedups (25-50%) through reduced overhead: accessing Digits is faster than working with Handle<BigInt>, and this implementation avoids allocating intermediate results. Bug: v8:11515 Change-Id: I2aab2b1c5c9cbb910800161b8514c497daf2b587 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149453Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#76793}
-
- 08 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
No multiplications needed, just putting bits directly into the right places. Bug: v8:11515 Change-Id: I65e5658bb5ed12caec9325f414563526f8edbbf3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055291 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#76727}
-
- 01 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
When an attempt to parse a huge string to a BigInt fails, then including the entire string in it makes the exception's message unwieldy, so this patch puts only the first 1000 characters of such invalid strings into the exception message. Bug: chromium:1245239 Change-Id: I2c62f0d34256653ba67da9666e8c5a1a4bbe0599 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3133142 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/main@{#76619}
-
- 20 Aug, 2021 1 commit
-
-
Jakob Kummerow authored
Combining parts in a balanced-binary-tree like order allows us to use fast multiplication algorithms. Bug: v8:11515 Change-Id: I6829929671770f009f10f6f3b383501fede476ab Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049079Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#76404}
-
- 10 Aug, 2021 1 commit
-
-
Jakob Kummerow authored
This patch significantly speeds up parsing of small BigInts. Its primary idea is to move the loop that's iterating over the string into the FromStringAccumulator API. That enables using function- local variables instead of member fields. A second optimization is to use a stack-allocated digit_t[] array for small sizes, before falling back to a (comparatively slow) std::vector. As a particularly fast path, when this stack-allocated storage is guaranteed to be enough, we can perform inlined multiply-and-add steps directly on that data. Finally, this patch changes the conversion of characters to their numeric values from computations to a lookup table, which is a bit faster for radixes <= 10 (where, in the old code, only one range needed to be checked), and a lot faster for radixes > 10. Bug: v8:11515 Change-Id: Ifd8ec4799ac34447ba6d4350b7788b559307784c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3064603 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#76210}
-
- 06 Aug, 2021 1 commit
-
-
Jakob Kummerow authored
Firstly, the fast path checking for applicability of the equality "A/B = 0 with remainder A" must use the condition "A<B", not "A<=B". Secondly, *all* early return paths must ensure that enough padding '0' characters are written. Fixed: chromium:1236694 Bug: v8:11515 Change-Id: I3fa7e17f5f3969ddbb5417b53abf3bff3fc1355b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3075365Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#76139}
-
- 30 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
No changes to the algorithm, approximately 4x performance improvement thanks to reduced overhead. Bug: v8:11515 Change-Id: Id3f6c91bd650f6ae47ac8f169dc780420091998e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3046185 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#76022}
-
- 28 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
Bug: v8:11515 Change-Id: Ieece676f2f4ae258db8b7e1783c796ff6c0fa6f4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055293Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75956}
-
- 27 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
It was previously only passed to compilation units in src/bigint/, but inconsistencies arise when it's not passed to other compilation units that #include src/bigint/bigint.h. Fixed: chromium:1233397 Change-Id: Idb310d8c13bad12766699086574aa2c3869eb56c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056452Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75941}
-
- 26 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
Bug: v8:11515 Change-Id: I1353726c9e81c3601258202fe56c05ffd16a4a25 Fixed: chromium:1232733 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054112Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75927}
-
- 23 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
Now that we have advanced division algorithms, we can implement a divide-and-conquer strategy for toString-conversions, to make their complexity sub-quadratic. For example, this speeds up `(2n ** (2n ** 21n)).toString().length` from 9400 ms to 200 ms on my laptop. Bug: v8:11515 Change-Id: Id20f7f2928dc7308609f4c1688f32b252e04f433 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3017805Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75880}
-
- 16 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
When the FFT multiplication algorithm invokes itself for the recursive steps, the input is "mod Fn"-normalized, i.e. it is at most of the shape (1 << N), but we only read N bits of it, so in the rare case where it was exactly 1 << N, that lone top bit was ignored, leading to an incorrect result of the overall multiplication. Fixed: chromium:1228267 Change-Id: I7b245fc3701696d95e5d75fb970f02d72ce40ff8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3032081Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75755}
-
- 15 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
Dividing by first computing a multiplicative inverse is faster than Burnikel-Ziegler division for very large inputs. Bug: v8:11515 Change-Id: Ice45690c3fa4eef7102d418cdd3d82a942a076c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3015573 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#75743}
-
- 12 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
A single ClusterFuzz report flushed out two minor issues in the bit fiddling routines. Bug: chromium:1227752,v8:11515 Change-Id: I16ab914b7c3859f55aa141ced371dd80171d0cb5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3017809Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75678}
-
- 09 Jul, 2021 3 commits
-
-
Jakob Kummerow authored
The Schönhage-Strassen method for *very* large inputs. This is a reland of 347ba357, with added zero-initialization to pacify MSan (spurious report). Originally: > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3000742 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75659} Bug: v8:11515 Change-Id: Ieac6e174bde6eb09af0a9a9a49969feabca79e81 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3018081Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75663}
-
Leszek Swirski authored
This reverts commit 347ba357. Reason for revert: MSAN https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/39275/overview Original change's description: > [bigint] FFT-based multiplication > > The Schönhage-Strassen method for *very* large inputs. > > Bug: v8:11515 > Change-Id: Ie8613f54928c9d3f6ff24e3102bc809de9f4496e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3000742 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75659} Bug: v8:11515 Change-Id: Ib0601e91bbd8ac5732b57730e3507eb0fa7e3947 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3015574 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#75660}
-
Jakob Kummerow authored
The Schönhage-Strassen method for *very* large inputs. Bug: v8:11515 Change-Id: Ie8613f54928c9d3f6ff24e3102bc809de9f4496e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3000742 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#75659}
-
- 07 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
A generalization of Karatsuba's idea for even larger inputs. Bug: v8:11515 Change-Id: I50eac2d313bf4217bf2f55ca2e64b5f120f40206 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999870 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#75598}
-
- 02 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
Bug: v8:11515 Change-Id: I598e57de1c7d6219096dd2306fa206faf7247bb5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999869 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#75526}
-
- 01 Jul, 2021 2 commits
-
-
Jakob Kummerow authored
Bug: v8:11515 Change-Id: Idf92af0fe30efe5569e8aaaef1bcc364f1db8f59 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3000744 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#75517}
-
Jakob Kummerow authored
When adding up the results of the recursive steps, the Karatsuba algorithm can temporarily have intermediate results that are one bit bigger than the final result. This patch makes sure we handle that case correctly. Since that extra bit would always get subtracted again, the old code would not have caused incorrect results or memory corruption, but it did run into DCHECK-failures, and potentially could have caused segfaults. Bug: v8:11515, chromium:1223724 Change-Id: I3592835d01cc36def8f0a9bae625e9249864ef78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2988758Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75509}
-
- 25 Jun, 2021 1 commit
-
-
Jakob Kummerow authored
This just moves the existing algorithm, and translates it from Handle<BigInt> to Digits as underlying data format. Bug: v8:11515 Change-Id: Ieefee4e953e14f4c574aebab94d825ddb7c31f8c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975304 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#75391}
-
- 22 Jun, 2021 1 commit
-
-
Jakob Kummerow authored
The Burnikel-Ziegler division algorithm is used for divisors with 57 or more internal digits. It has better asymptotic complexity than "schoolbook" division because it can make use of fast multiplication under the hood. Bug: v8:11515 Change-Id: Ib5d573a0afa560d42972c4ae06aff810a8b9cadb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960221 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#75310}
-
- 15 Jun, 2021 1 commit
-
-
Jakob Kummerow authored
No changes to the algorithm; minor speedup due to the move from Handle<BigInt> to Digits. Bug: v8:11515 Change-Id: Id85fe4f0c276d3ad826fee79205719092d0e0715 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2947412 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#75158}
-
- 08 Jun, 2021 1 commit
-
-
Jakob Kummerow authored
Due to the limits of ia32's calling convention, being able to avoid construction of "Digits" objects (thanks to inlining) helps a lot for microbenchmarks. Fixed: chromium:1192133 Change-Id: I5676640d96a99dc6422f3946c608bcc93ef222ba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2947410 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#75028}
-
- 07 Jun, 2021 2 commits
-
-
Jakob Kummerow authored
Change-Id: I244a28e29f14b05a50c8bb10db429b16b2052aca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2944432Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74976}
-
Jakob Kummerow authored
This is a reland of 81dd3f42, which was a reland of 59eff3bf Original change's description: > [bigint] Karatsuba multiplication > > The Karatsuba algorithm is used for BigInts with 34 or more internal > digits, and thanks to better asymptotic complexity provides greater > speedups the bigger the inputs. > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2782283 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74916} Bug: v8:11515 Change-Id: I08f7d59dfa39fb3b532684685afd9fa750e0e84e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2933666Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74969}
-
- 02 Jun, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit 81dd3f42. Reason for revert: Does not compile on MSVC: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20msvc/18017/overview Original change's description: > Reland "[bigint] Karatsuba multiplication" > > This is a reland of 59eff3bf > > Original change's description: > > [bigint] Karatsuba multiplication > > > > The Karatsuba algorithm is used for BigInts with 34 or more internal > > digits, and thanks to better asymptotic complexity provides greater > > speedups the bigger the inputs. > > > > Bug: v8:11515 > > Change-Id: I5ab0e318173ea4a02ced3f156d3c17e0259c5036 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2782283 > > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#74916} > > Bug: v8:11515 > Change-Id: I5ece2ff29ef11ea304980c053887d9746cfc80bc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2933497 > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74922} Bug: v8:11515 Change-Id: Ie4a80256174fc8d9f714c01f012ac2dc6247a220 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2933665 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#74926}
-
Jakob Kummerow authored
This is a reland of 59eff3bf Original change's description: > [bigint] Karatsuba multiplication > > The Karatsuba algorithm is used for BigInts with 34 or more internal > digits, and thanks to better asymptotic complexity provides greater > speedups the bigger the inputs. > > Bug: v8:11515 > Change-Id: I5ab0e318173ea4a02ced3f156d3c17e0259c5036 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2782283 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74916} Bug: v8:11515 Change-Id: I5ece2ff29ef11ea304980c053887d9746cfc80bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2933497Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74922}
-