- 21 Nov, 2019 1 commit
-
-
Joshua Litt authored
This is a reland of f2a74165 Original change's description: > [regexp] Re-execute regexp when '.indices' is accessed. > > Instead of storing a pointer to the last_match_info, which may > change, this cl modifies JSRegExpResult to store a pointer to > the original JSRegExp which generated it, as well as additional > data needed to re-execute the match. > > Basically a straight copy and tidy off jgruber@'s prototype: > https://chromium-review.googlesource.com/c/v8/v8/+/1876810 > > Bug: v8:9548 > Change-Id: I11b7deae681b8287e41e8d0e342291ff484751fb > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910129 > Commit-Queue: Joshua Litt <joshualitt@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65053} Bug: v8:9548 Change-Id: Ieeba4b1ae59ef0c7946d654dc314adfae09d24b5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925554Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Joshua Litt <joshualitt@chromium.org> Cr-Commit-Position: refs/heads/master@{#65096}
-
- 20 Nov, 2019 1 commit
-
-
Joshua Litt authored
This reverts commit f2a74165. Reason for revert: Clusterfuzz Bug: chromium:1026479 Original change's description: > [regexp] Re-execute regexp when '.indices' is accessed. > > Instead of storing a pointer to the last_match_info, which may > change, this cl modifies JSRegExpResult to store a pointer to > the original JSRegExp which generated it, as well as additional > data needed to re-execute the match. > > Basically a straight copy and tidy off jgruber@'s prototype: > https://chromium-review.googlesource.com/c/v8/v8/+/1876810 > > Bug: v8:9548 > Change-Id: I11b7deae681b8287e41e8d0e342291ff484751fb > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910129 > Commit-Queue: Joshua Litt <joshualitt@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65053} TBR=jgruber@chromium.org,joshualitt@chromium.org Change-Id: I6294e3d7ac0b3e2bd9404697823b8d3cc2545c16 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9548 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925651Reviewed-by:
Joshua Litt <joshualitt@chromium.org> Commit-Queue: Joshua Litt <joshualitt@chromium.org> Cr-Commit-Position: refs/heads/master@{#65057}
-
- 19 Nov, 2019 1 commit
-
-
Joshua Litt authored
Instead of storing a pointer to the last_match_info, which may change, this cl modifies JSRegExpResult to store a pointer to the original JSRegExp which generated it, as well as additional data needed to re-execute the match. Basically a straight copy and tidy off jgruber@'s prototype: https://chromium-review.googlesource.com/c/v8/v8/+/1876810 Bug: v8:9548 Change-Id: I11b7deae681b8287e41e8d0e342291ff484751fb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910129 Commit-Queue: Joshua Litt <joshualitt@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#65053}
-
- 15 Nov, 2019 1 commit
-
-
Maya Lekova authored
This helps reduce the number of false positives encountered by the dead variable analysis in gcmole. TBR=jgruber@chromium.org, verwaest@chromium.org, yangguo@chromium.org Bug: v8:9810 Change-Id: I1a34ccaab340e6abc37832b4ce1a0cabc56fa438 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1917146 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64981}
-
- 14 Nov, 2019 1 commit
-
-
Clemens Backes authored
This removes {CPURegister::Is} and {CPURegister::is}, and just uses {CPURegister::operator==} instead. Drive-by: Use DCHECK_EQ and DCHECK_NE where possible. R=mstarzinger@chromium.org Bug: v8:9810 Change-Id: I03aad8b4223bd4ae37d468326a734f7a5c3c8061 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916202Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64956}
-
- 08 Nov, 2019 1 commit
-
-
Clemens Backes authored
{WhichPowerOf2} is basically the same as {CountTrailingZeros}, with a restriction to powers of two. Since it does not use or depend on any v8 internals, it can be moved to src/base/bits.h. This CL also changes the implementation to use the CTZ builtin if available, and falls back to popcnt otherwise. Drive-by: Make it constexpr, and rename to {WhichPowerOfTwo}. R=sigurds@chromium.org Bug: v8:9810, v8:8912 Change-Id: I8368d098f9ab1247f3b9f036f1385a38de10cc6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903966Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64851}
-
- 24 Oct, 2019 1 commit
-
-
Mu Tao authored
This is the second porting of 0089006f The first not fully porting is da0ef75f Change-Id: Ia7e51a492df2fcab7da0cd8b2ff4d436c28563e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1877794 Auto-Submit: Mu Tao <pamilty@gmail.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Mu Tao <pamilty@gmail.com> Cr-Commit-Position: refs/heads/master@{#64532}
-
- 23 Oct, 2019 1 commit
-
-
Mu Tao authored
Port 0089006f Original Commit Message: .. similar to how it is applied in the interpreter. We reserve a stack slot for the backtrack count, increment it on each backtrack, and fail if the limit is hit. Change-Id: I51879e6cafb3c77d635fc6e84e7e2c5ce3a088e6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873445 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Auto-Submit: Mu Tao <pamilty@gmail.com> Cr-Commit-Position: refs/heads/master@{#64490}
-
- 22 Oct, 2019 3 commits
-
-
Milad Farazmand authored
Port 0089006f Original Commit Message: .. similar to how it is applied in the interpreter. We reserve a stack slot for the backtrack count, increment it on each backtrack, and fail if the limit is hit. R=jgruber@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ic0c0f8569b2c2596976136d96971e7fa39f9e145 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872430Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64473}
-
Jakob Gruber authored
The new regexp_backtracks / V8.RegExpBacktracks counter tracks the number of backtracks performed per regexp execution. The results can help us prioritize related work. Note that we only count backtracks in the interpreter. Jitted code is ignored. With our current regexp tiering strategy, that means we count backtracks only in the first execution of each regexp. Chromium CL: https://crrev.com/c/1871601 Bug: v8:9892 Change-Id: I19146d6e9bc2355f210a050e93dd7e856ab066f3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873696 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#64467}
-
Jakob Gruber authored
This CL removes the V8_EMBEDDED_BUILTINS define, FLAG_embedded_builtins, and all code for supporting non-embedded-builtin builds. Bug: v8:6666,v8:8519 Change-Id: I2ad7bd6614c7cd404b83d3d2bf5ff91d7b55ff2a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866569 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64461}
-
- 21 Oct, 2019 3 commits
-
-
Jakob Gruber authored
.. similar to how it is applied in the interpreter. We reserve a stack slot for the backtrack count, increment it on each backtrack, and fail if the limit is hit. Bug: v8:9695 Change-Id: I835888c612d6c8bfa2f34e73ab8c8241dcabc6ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864938Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64426}
-
Jakob Gruber authored
V8 uses a backtracking regexp engine, which has the caveat that some regexp patterns can have exponential runtime behavior when excessive backtracking is involved. Especially when regexp patterns are user-controlled, it would be useful to be able to set an upper limit for a single regexp execution. This CL takes an initial step in that direction by adding a backtracking limit (intended to approximate execution time): - The limit is stored in the JSRegExp's data array. - A limit can currently only be set through the %NewRegExpWithLimit runtime function. - The limit is applied during interpreter execution. When exceeded, the interpreter stops execution and returns FAILURE (even if continued execution would at some later point have resulted in SUCCESS). In follow-up CLs, this mechanism will be extended to work in jitted regexp code, and exposed through the V8 API. Bug: v8:9695 Change-Id: Iadb5c100052f4a63b26f1ec49cf97c6713a66b9b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864934 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#64417}
-
Jakob Gruber authored
This is a reland of 97ed8b27 Original change's description: > [regexp] Guarantee an allocated regexp stack > > The regexp stack is used during execution of jitted regexp matcher > code. Previously, the stack was initially not present / nullptr, and > we had to explicitly check for this condition and bail out in builtin > code. > > This CL changes behavior to guarantee a present stack by adding a > statically-allocated area that is used whenever no > dynamically-allocated stack exists. > > Change-Id: I52934425ae72cf0e5d13fab2b9d63d37ca76fcf3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852126 > Auto-Submit: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64326} Change-Id: If345c09bdbfc8dc6b63f016c3f10ffda811bbb6d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866771 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#64401}
-
- 17 Oct, 2019 2 commits
-
-
Milad Farazmand authored
The calling conventions on AIX uses function descriptors, which means that pointers to functions do not point to code, but instead point to metadata about them. When calling JITed code, we must assure to use function descriptors instead of raw pointers when needed. Before this CL 213504b9, all CallCFunction on AIX were guaranteed to have function descriptors. Starting form the CL mentioned above, CallCFunction can also Jump to a Trampoline which does not have a function descriptor, hence a new "CallCFunctionWithoutFunctionDescriptor" method is proposed to deal with this issue. BUG= v8:9766 Change-Id: I9343c31c812f5d4dda8503a5adf024b24dbde072 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1825961 Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64357}
-
Sathya Gunasekaran authored
This reverts commit 97ed8b27. Reason for revert: breaks chromium roll https://chromium-review.googlesource.com/c/chromium/src/+/1864878 I bisected it down to this CL here: https://chromium-review.googlesource.com/c/chromium/src/+/1865346/6 https://ci.chromium.org/p/chromium/builders/try/linux-rel/219610 Original change's description: > [regexp] Guarantee an allocated regexp stack > > The regexp stack is used during execution of jitted regexp matcher > code. Previously, the stack was initially not present / nullptr, and > we had to explicitly check for this condition and bail out in builtin > code. > > This CL changes behavior to guarantee a present stack by adding a > statically-allocated area that is used whenever no > dynamically-allocated stack exists. > > Change-Id: I52934425ae72cf0e5d13fab2b9d63d37ca76fcf3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852126 > Auto-Submit: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64326} TBR=jgruber@chromium.org,petermarshall@chromium.org Change-Id: I085b7aebb513fdededda7631b06ff68e5ae5846e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864945Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#64346}
-
- 16 Oct, 2019 2 commits
-
-
Jakob Gruber authored
The regexp stack is used during execution of jitted regexp matcher code. Previously, the stack was initially not present / nullptr, and we had to explicitly check for this condition and bail out in builtin code. This CL changes behavior to guarantee a present stack by adding a statically-allocated area that is used whenever no dynamically-allocated stack exists. Change-Id: I52934425ae72cf0e5d13fab2b9d63d37ca76fcf3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852126 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#64326}
-
Jakob Gruber authored
Named capture properties on the groups object should be ordered by the capture index (and not alpha-sorted). This was accidentally broken in https://crrev.com/c/1687413. Bug: v8:9822,v8:9423 Change-Id: Iac6f866f077a1b7ce557ba47e8ba5d7e7014b3ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864829 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#64306}
-
- 11 Oct, 2019 1 commit
-
-
Jakob Kummerow authored
This is for consistency and compiler-enforced type safety. No change in behavior intended. Change-Id: I31467832ba6c63fd5f97df9fee6221559b283d67 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852766 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64244}
-
- 10 Oct, 2019 1 commit
-
-
Jakob Gruber authored
The tier-up check is only needed for instances that currently go through the interpreter. It is simpler to move the check into the interpreter's C++ entry point. At that point, when we see a JSRegExp that should tier-up, we simply return RETRY which will automatically send us back into runtime where the actual recompilation happens. Bug: v8:9566 Change-Id: Ib7bb5d21a30bae45d6e14846edd2a47469989b35 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852125 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#64210}
-
- 09 Oct, 2019 1 commit
-
-
Frank Tang authored
Move the "if (!((start >= 128) && (character < 128))) {" check outside while (start <= end) loop. Bug: v8:9731 Change-Id: I1f7e2fea189f0eba0b52100ac8d4063e7d79a306 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832911Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#64194}
-
- 08 Oct, 2019 1 commit
-
-
Jakob Gruber authored
Left-shifting a variable of signed type containing a negative value is undefined behavior. Bug: chromium:1010465,v8:9330 Change-Id: Ide524f87a7d76f906f6034de4c6605df150c66a8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847151Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64154}
-
- 07 Oct, 2019 1 commit
-
-
Junliang Yan authored
Disable because it's not yet supported on BE Bug: v8:9330 Change-Id: Ia850801d410d3eeaccf9933dd2669f6077e2919c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834904Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64141}
-
- 01 Oct, 2019 2 commits
-
-
Jakob Gruber authored
This is a reland of 66129430 Fixed: Unaligned reads, unspecified evaluation order. Original change's description: > [regexp] Bytecode peephole optimization > > Bytecodes used by the regular expression interpreter often occur in > specific sequences. The number of dispatches in the interpreter can be > reduced if those sequences are combined into a single bytecode. > > This CL adds a peephole optimization pass for regexp bytecodes. > This pass checks the generated bytecode for pre-defined sequences that > can be merged into a single bytecode. > > With the currently implemented bytecode sequences a speedup of 1.12x on > regex-dna and octane-regexp is achieved. > > Bug: v8:9330 > Change-Id: I827f93273a5848e5963c7e3329daeb898995d151 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743 > Commit-Queue: Patrick Thier <pthier@google.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63992} Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux_gcc_rel Bug: v8:9330,chromium:1008502,chromium:1008631 Change-Id: Ib9fc395b6809aa1debdb54d9fba5b7f09a235e5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1828917Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64064}
-
Ana Peško authored
This is a reland of cfb60d43 Original change's description: > [regexp] Eagerly tier-up for very long strings > > For very long subject strings, the regexp interpreter is currently much slower > than the native machine code execution. This CL implements eager tier-up to the > compiler to avoid the performance penalty for subject strings of length greater > than 1000. > > Change-Id: I244ccbd60255e0f3bedc493b1cc3d25cdd42133e > Bug: v8:9566 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1829273 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Ana Pesko <anapesko@google.com> > Cr-Commit-Position: refs/heads/master@{#64046} Bug: v8:9566 Change-Id: I81a10728c64ce3b35258c31eb8178e458d3de205 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832167Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Ana Pesko <anapesko@google.com> Cr-Commit-Position: refs/heads/master@{#64063}
-
- 30 Sep, 2019 3 commits
-
-
Vasili Skurydzin authored
prepare for ptr compression Change-Id: Ia459ad18a30fbfd8e51bd99735f0d63644d30b8f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1831788Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Reviewed-by:
Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64051}
-
Ana Pesko authored
This reverts commit cfb60d43. Reason for revert: Several bots timing out, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/24717 Original change's description: > [regexp] Eagerly tier-up for very long strings > > For very long subject strings, the regexp interpreter is currently much slower > than the native machine code execution. This CL implements eager tier-up to the > compiler to avoid the performance penalty for subject strings of length greater > than 1000. > > Change-Id: I244ccbd60255e0f3bedc493b1cc3d25cdd42133e > Bug: v8:9566 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1829273 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Ana Pesko <anapesko@google.com> > Cr-Commit-Position: refs/heads/master@{#64046} TBR=yangguo@chromium.org,petermarshall@chromium.org,anapesko@google.com TBR=yangguo@chromium.org Change-Id: Id8dd362617988c8c5efa87ae157ee91c96cb1fdf No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832163Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Ana Pesko <anapesko@google.com> Cr-Commit-Position: refs/heads/master@{#64047}
-
Ana Peško authored
For very long subject strings, the regexp interpreter is currently much slower than the native machine code execution. This CL implements eager tier-up to the compiler to avoid the performance penalty for subject strings of length greater than 1000. Change-Id: I244ccbd60255e0f3bedc493b1cc3d25cdd42133e Bug: v8:9566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1829273Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Ana Pesko <anapesko@google.com> Cr-Commit-Position: refs/heads/master@{#64046}
-
- 27 Sep, 2019 2 commits
-
-
Frank Tang authored
Address special case condiction for U+017F. Bug: v8:9356 Change-Id: Id24e5e2c999b198bf0f696aea8c98f223508c051 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1827683 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#64028}
-
Frank Tang authored
Add logic stated in Bug: v8:9731 Change-Id: I0b3468bbad11a178f36d682febd0e44214646de8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1828279 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#64027}
-
- 26 Sep, 2019 2 commits
-
-
Clemens Backes [né Hammacher] authored
This reverts commit 66129430. Reason for revert: Fails on gcc: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20gcc/3394 Original change's description: > [regexp] Bytecode peephole optimization > > Bytecodes used by the regular expression interpreter often occur in > specific sequences. The number of dispatches in the interpreter can be > reduced if those sequences are combined into a single bytecode. > > This CL adds a peephole optimization pass for regexp bytecodes. > This pass checks the generated bytecode for pre-defined sequences that > can be merged into a single bytecode. > > With the currently implemented bytecode sequences a speedup of 1.12x on > regex-dna and octane-regexp is achieved. > > Bug: v8:9330 > Change-Id: I827f93273a5848e5963c7e3329daeb898995d151 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743 > Commit-Queue: Patrick Thier <pthier@google.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63992} TBR=jgruber@chromium.org,petermarshall@chromium.org,pthier@google.com Change-Id: Ie526fe3691f6abdd16b51979000fdafb7afce8ef No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9330 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1826727Reviewed-by:
Clemens Backes [né Hammacher] <clemensb@chromium.org> Commit-Queue: Clemens Backes [né Hammacher] <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#63998}
-
Patrick Thier authored
Bytecodes used by the regular expression interpreter often occur in specific sequences. The number of dispatches in the interpreter can be reduced if those sequences are combined into a single bytecode. This CL adds a peephole optimization pass for regexp bytecodes. This pass checks the generated bytecode for pre-defined sequences that can be merged into a single bytecode. With the currently implemented bytecode sequences a speedup of 1.12x on regex-dna and octane-regexp is achieved. Bug: v8:9330 Change-Id: I827f93273a5848e5963c7e3329daeb898995d151 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743 Commit-Queue: Patrick Thier <pthier@google.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63992}
-
- 25 Sep, 2019 1 commit
-
-
Dan Elphick authored
In preparation for Code objects that aren't executable and can be in RO_SPACE, pass an Isolate into Code::Disassemble. Bug: v8:7464 Change-Id: I99f5faf23dd4709a48925e1ae44d1ce595ea6f5f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1822043Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#63962}
-
- 24 Sep, 2019 2 commits
-
-
Jakob Gruber authored
This extends suppressions to also handle excess zone allocations in the parser. Bug: chromium:1002510 Change-Id: Id418564d244ed618703e62260de31a6b1a2842f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1821459 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63948}
-
Jakob Gruber authored
This introduces a limit for the interpreter's BacktrackStack to match the limit used by generated code (RegExpStack::kMaximumStackSize). Bug: chromium:1006670 Change-Id: I0b7613698e61257aecca89535ad9109c7e454692 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1821458 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#63945}
-
- 19 Sep, 2019 1 commit
-
-
Jakob Gruber authored
This CL allows us to distinguish between the host- and target OS. The host OS is defined by V8_OS_ macros (e.g. V8_OS_WIN). The target OS is defined by V8_TARGET_OS_ macros (e.g. V8_TARGET_OS_WIN). V8_TARGET_OS_ macros are defined by gn, based on the `target_os` gn variable. If a V8_TARGET_OS_ is set, we also define V8_HAVE_TARGET_OS (this determines fall-back behavior in V8; if it is not defined, we set V8_TARGET_OS_ to equal the equivalent V8_OS_ define). Besides adding the defines, this CL also adds logic to consider the target OS in codegen. Specifically, x64 builds now look at the V8_TARGET_OS_WIN define instead of V8_OS_WIN or _WIN64. This effectively makes cross-compilation to x64 Windows in mksnapshot possible. In future work, we could add similar support for cross-compiling to other platforms such as ia32 Windows. Bug: v8:9736,chromium:803591 Change-Id: I689f3de8c206b743c4bef703f5ade0bba32ce995 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1809374Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63892}
-
- 16 Sep, 2019 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770,v8:9666 Change-Id: I7b7652887d6b60fbb80e1100834bc7c9df0544d8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792909 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Martyn Capewell <martyn.capewell@arm.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63801}
-
- 13 Sep, 2019 1 commit
-
-
Milad Farazmand authored
Port 213504b9 Original Commit Message: The code fields in a JSRegExp object now either contain irregexp compiled code or a trampoline to the interpreter. This way the code can be executed without explicitly checking if the regexp shall be interpreted or executed natively. In case of interpreted regexp the generated bytecode is now stored in its own fields instead of the code fields for Latin1 and UC16 respectively. The signatures of the jitted irregexp match and the regexp interpreter have been equalized. R=pthier@google.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ia2a80ce927afa644441c0749add0fc35111eb720 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803657Reviewed-by:
Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#63773}
-
- 12 Sep, 2019 1 commit
-
-
Patrick Thier authored
Currently the dispatch table could be accessed out of bounds if something is wrong with the generated bytecode. OOB access of the dispatch table can lead to jumps to arbitrary addresses in the code space. This CL prevents this issue by changing the following: BYTECODE_MASK now filters out all bits not currently used for bytecodes. All unused slots between the last actually defined bytecode and BYTECODE_MASK are now filled with BREAK Bytecodes (invalid operation). This way we can not access out of bounds of the dispatch table if something is broken/tampered with, preventing jumps to arbitrary code. Bug: v8:9699 Change-Id: Ibce591ae94b52472ba74a9fd0666e55185af7b2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795349 Commit-Queue: Patrick Thier <pthier@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#63708}
-
- 09 Sep, 2019 1 commit
-
-
Ana Peško authored
This CL implements the tier-up strategy where the interpreter can be used for an arbitrary number of executions for every regex, before tiering-up to the compiler. The only exception is for functional global replaces, where we eagerly tier-up to native code right away. To use the tier-up logic --regexp-tier-up=value needs to be set. It is currently set to 0 by default. Change-Id: I770857e5eae710a952fe47661cb42957c53848b4 Bug: v8:9566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789299 Commit-Queue: Ana Pesko <anapesko@google.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63623}
-