- 12 May, 2021 1 commit
-
-
Manos Koukoutos authored
Loop unrolling did not work properly with floating control. Seeing as very few spots in the wasm compiler introduced floating control, we decided to disallow it altogether. Changes: - When lowering 64-bit rol/ror/clz/ctz in 32-bit platforms, we use a diamond operator, which used to introduce floating control. This CL adds a control edge to these operators so that the diamond can be chained to that control instead. - During loop analysis, as an additional safety check, we check that the explored loop does not have floating control. Exceptionally, floating control pointing directly do start() is allowed. - Change wasm-compiler so that generated floating projections point to start() even after stack check patch-in. Bug: chromium:1184929, v8:11298 Change-Id: I1ee063f5250037ae6c84d2f16b0bd8fff3923117 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2876851Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74527}
-
- 03 Mar, 2021 1 commit
-
-
Nico Hartmann authored
Bug: v8:11298 Change-Id: I99d36812aabd99fd92a20f743705aee193914381 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2731530Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#73158}
-
- 01 Mar, 2021 1 commit
-
-
Manos Koukoutos authored
During loop exploration implemented for wasm loop unrolling, we can exit early if we already know that the loop is too large to unroll. Bug: v8:11298 Change-Id: I213edef995b58500d07d428f1f1a725132dd44e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2726501Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#73095}
-
- 24 Feb, 2021 1 commit
-
-
Manos Koukoutos authored
Design doc: https://docs.google.com/document/d/1AsUCqslMUB6fLdnGq0ZoPk2kn50jIJAWAL77lKXXP5g/ Currently, wasm loop unrolling is disabled by default. We intend to further investigate its compilation time cost and running time benefits before enabling it. Additional changes: - Introduce LoopFinder::FindUnnestedLoopFromHeader() as a lightweight loop analysis. - Move EliminateLoopExit into LoopPeeling and expose it. - Introduce loop_info_ field into WasmGraphBuildingInterface, fill it up in Loop(). - Break after encountering the first loop in BuildNestedLoopExits. - Introduce struct WasmLoopInfo. A WasmLoopInfo vector is instantiated in ExecuteTurbofanWasmCompilation, passed to BuildGraphForWasmFunction to be filled up by WasmGraphBuildingInterface, and then passed to GenerateCodeForWasmFunction to be used in WasmLoopUnrollingPhase. - Introduce WasmLoopUnrollingPhase and insert it into the wasm compilation pipeline. - Fix an issue where exception values were not wrapped in WasmGraphBuilderInterface. - Update --wasm-loop-unrolling flag description. Bug: v8:11298 Change-Id: I4b57cf2ea8520931f60769f843ffd57b3ca6399b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697349 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#73009}
-
- 06 Feb, 2021 1 commit
-
-
Manos Koukoutos authored
In preparation of loop unrolling, we move some loop analysis infrastructure out of loop-peeling.{h, cc}, and implement some additional required functionality. Changes: - Implement inner_loops() in loop-analysis.h. Change some parameters in other functions from Loop* to (const Loop*) to accommodate this change. - Move Peeling class into loop-analysis, rename it to NodeCopier. - Simplify NodeCopier::CopyNodes(). - Allow NodeCopier to produce multiple copies of the targeted Nodes. - Introduce LoopFinder::HasMarkedExits(). Move the implementation of LoopPeeling::CanPeel() there. CanPeel() is now an alias for HasMarkedExits(). Bug: v8:11298 Change-Id: I245b2e937393e4a78ce4d355e1290aaf6e617114 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2672019 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72555}
-
- 07 Jan, 2021 1 commit
-
-
Manos Koukoutos authored
Loop analysis never visited nodes whose marks happened to not change when visiting their outputs in backwards propagation. This CL ensures that each reachable node is visited at least once. Change-Id: I70cd73737c0abe8151d5e23bc50525599fa3ea6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581538Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#71938}
-
- 28 Jul, 2020 1 commit
-
-
Santiago Aboy Solanes authored
This gives the GC a location where it can interrupt background compilation. Bug: v8:7790 Change-Id: I8cf40e9c9b69c00fdfd5d59ed87e83137e481fb3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2310366 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69109}
-
- 10 Jul, 2020 1 commit
-
-
Igor Sheludko authored
... by migrating old-style code MyObject* obj = new (zone) MyObject(...) to the new style MyObject* obj = zone->New<MyObject>(...) Bug: v8:10689 Change-Id: Iec2b3102bd35ad7e50b90882ade78d27999a71f2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288866Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#68803}
-
- 17 Jul, 2019 1 commit
-
-
Tobias Tebbi authored
This adds a simple counter to Turbofan that's incremented throughout the compilation, hopefully frequently enough so we can use it to detect divergence and performance bugs. In addition, we assert that this counter never gets too high. That's the equivalent of a simple timeout, just more deterministic. The limitations on Turbofan input size should guarantee that we never exceed this limit. Since we probably do exceed it rarely, this check is only a DCHECK and intended to detect performance and divergence issues, but not supposed to be performed in release builds. In addition, this CL adds UMA stats to observe the real world distribution of the tick measurement. Bug: v8:9444 Change-Id: I182dac6ecac64715e3f5885ff5c7c17549351cd0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695475 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#62754}
-
- 02 Dec, 2017 1 commit
-
-
Mathias Bynens authored
This patch normalizes the casing of hexadecimal digits in escape sequences of the form `\xNN` and integer literals of the form `0xNNNN`. Previously, the V8 code base used an inconsistent mixture of uppercase and lowercase. Google’s C++ style guide uses uppercase in its examples: https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters Moreover, uppercase letters more clearly stand out from the lowercase `x` (or `u`) characters at the start, as well as lowercase letters elsewhere in strings. BUG=v8:7109 TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6 Reviewed-on: https://chromium-review.googlesource.com/804294 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49810}
-
- 21 Nov, 2017 1 commit
-
-
Mike Stanton authored
Bug: Change-Id: Ib9ca5458554ed23e94e85e2a9cb42d816649c881 Reviewed-on: https://chromium-review.googlesource.com/781661Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#49527}
-
- 09 Aug, 2017 1 commit
-
-
Mostyn Bramley-Moore authored
To speed up compilation times, jumbo allows files to be compiled together. This is a well known method ("unity builds") to both compile faster and create a poor man's "full program optimization". We are only interested in compile times. Background: https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md Note that jumbo builds are not enabled by default. To try this out, add use_jumbo_build=true to your GN args. BUG=chromium:746958 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ieb9fdccb6c135e9806dbed91c09a29aa8b8bee11 Reviewed-on: https://chromium-review.googlesource.com/579090 Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#47239}
-
- 20 Sep, 2016 1 commit
-
-
heimbuef authored
This is some initial cleanup to keep /src clean. The AccountingAllocator is actually exclusively used by zones and this common subfolder makes that more clear. BUG=v8:5409 Review-Url: https://codereview.chromium.org/2344143003 Cr-Commit-Position: refs/heads/master@{#39558}
-
- 27 Jul, 2016 1 commit
-
-
jarin authored
The new phase will detect loop variable, infer bounds and bake them into the type. Review-Url: https://codereview.chromium.org/2164263003 Cr-Commit-Position: refs/heads/master@{#38077}
-
- 15 Jul, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/2143163002 Cr-Commit-Position: refs/heads/master@{#37791}
-
- 07 Apr, 2015 1 commit
-
-
titzer authored
This CL primarily makes the loop peeling algorithm more robust; it no longer damages the graph if the loops are improperly closed. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1052753004 Cr-Commit-Position: refs/heads/master@{#27620}
-
- 11 Feb, 2015 1 commit
-
-
titzer authored
BUG= Review URL: https://codereview.chromium.org/898353002 Cr-Commit-Position: refs/heads/master@{#26576}
-
- 06 Feb, 2015 1 commit
-
-
titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/909463002 Cr-Commit-Position: refs/heads/master@{#26489}
-
- 29 Jan, 2015 1 commit
-
-
bmeurer authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/883613006 Cr-Commit-Position: refs/heads/master@{#26316}
-
- 20 Jan, 2015 1 commit
-
-
titzer authored
BUG= Review URL: https://codereview.chromium.org/816053002 Cr-Commit-Position: refs/heads/master@{#26149}
-
- 19 Jan, 2015 1 commit
-
-
titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/855653002 Cr-Commit-Position: refs/heads/master@{#26140}
-
- 14 Jan, 2015 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/852783002 Cr-Commit-Position: refs/heads/master@{#26063}
-
- 07 Jan, 2015 1 commit
-
-
bmeurer authored
- Move NodeMarker to its own file, and introduce a non templatized base class. - Cleanup the include hell. - Sanitize the Node construction methods now that we got rid of that GenericNode/GenericGraph stuff. - Protect against NodeId overflow in Graph. - Various minor cleanups. TEST=cctest,mjsunit,unittests Review URL: https://codereview.chromium.org/838783002 Cr-Commit-Position: refs/heads/master@{#25977}
-
- 16 Dec, 2014 1 commit
-
-
titzer authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/803993002 Cr-Commit-Position: refs/heads/master@{#25837}
-