- 26 Feb, 2020 1 commit
-
-
Clemens Backes authored
This is a first step to make {WasmCode} objects smaller. Many code offsets are currently stored in {size_t} even though there were originally (during assembly) an int. Others are stored in {uint32_t}. This CL switches the function index and all code lengths and offsets to int, because a) bigger code is not supported anyway, and b) the style guide recommends int over unsigned types. This makes the {WasmCode} 24 bytes smaller on x64 (from 144 to 120 bytes). R=ahaas@chromium.org Bug: v8:10254 Change-Id: I8f78bf4be64d59cf9393e3b6662d9d3bd153d387 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074217Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66462}
-
- 21 Feb, 2020 1 commit
-
-
Wouter Vermeiren authored
After support for ARCH_PPC was dropped, it became a subset of ARCH_PPC64. If you compile for ppc64, then you set the ARCH_PPC64 define which also sets the ARCH_PPC define. To be able to again support ppc (32 bit) those defines should be split up again. This commit only splits up the defines but does not introduce a working ARCH_PPC variant. Bug: v8:10102 Change-Id: I64e0749f8e5a7dc078ee7890d92e57b82706a849 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1989826 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66390}
-
- 20 Feb, 2020 1 commit
-
-
Clemens Backes authored
If multiple code spaces are created, each of them currently gets its own jump table (on 64 bit platforms). Since we try to allocate new code spaces right after existing ones, this is often not necessary. We could instead reuse the existing jump table(s). This saves code space for the unneeded jump tables and avoid the cost of patching the redundant jump tables when we replace code objects. This CL implements this by checking whether an existing jump table (or pair of far jump table and (near) jump table) fully covers a new code space, and reuses the existing jump table in that case. R=ahaas@chromium.org Change-Id: Id8751b9c4036cf8f85f9baa2b0be8b2cfb5716ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2043846Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66364}
-
- 03 Feb, 2020 1 commit
-
-
Thibaud Michaud authored
This is a reland of 9781aa07 Original change's description: > Reland "[wasm] Cache streaming compilation result" > > This is a reland of 015f379a > > Original change's description: > > [wasm] Cache streaming compilation result > > > > Before compiling the code section, check whether the > > bytes received so far match a cached module. If they do, delay > > compilation until we receive the full bytes, since we are likely to find > > a cache entry for them. > > > > R=clemensb@chromium.org > > > > Bug: v8:6847 > > Change-Id: Ie5170d1274da3da6d52ff1b408abc7cb441bbe3c > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002823 > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#66000} > > Bug: v8:6847 > Change-Id: I0b5acffa01aeb7dade3dc966392814383d900015 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2022951 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66047} Bug: v8:6847 Change-Id: I272f56eee28010f34cc99df475164581c8b63036 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Cq-Include-Trybots: luci.v8.try:v8_linux64_msan_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030741 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66081}
-
- 30 Jan, 2020 2 commits
-
-
Thibaud Michaud authored
This reverts commit 9781aa07. Reason for revert: tsan bot failure: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/30110 Original change's description: > Reland "[wasm] Cache streaming compilation result" > > This is a reland of 015f379a > > Original change's description: > > [wasm] Cache streaming compilation result > > > > Before compiling the code section, check whether the > > bytes received so far match a cached module. If they do, delay > > compilation until we receive the full bytes, since we are likely to find > > a cache entry for them. > > > > R=clemensb@chromium.org > > > > Bug: v8:6847 > > Change-Id: Ie5170d1274da3da6d52ff1b408abc7cb441bbe3c > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002823 > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#66000} > > Bug: v8:6847 > Change-Id: I0b5acffa01aeb7dade3dc966392814383d900015 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2022951 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66047} TBR=clemensb@chromium.org,thibaudm@chromium.org Change-Id: I76e3561835815ac3d5bca74e76079e82f9f3d581 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6847 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030727Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#66050}
-
Thibaud Michaud authored
This is a reland of 015f379a Original change's description: > [wasm] Cache streaming compilation result > > Before compiling the code section, check whether the > bytes received so far match a cached module. If they do, delay > compilation until we receive the full bytes, since we are likely to find > a cache entry for them. > > R=clemensb@chromium.org > > Bug: v8:6847 > Change-Id: Ie5170d1274da3da6d52ff1b408abc7cb441bbe3c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002823 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66000} Bug: v8:6847 Change-Id: I0b5acffa01aeb7dade3dc966392814383d900015 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2022951 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66047}
-
- 27 Jan, 2020 2 commits
-
-
Clemens Backes authored
This reverts commit 015f379a. Reason for revert: Msan is unhappy: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/30702 Original change's description: > [wasm] Cache streaming compilation result > > Before compiling the code section, check whether the > bytes received so far match a cached module. If they do, delay > compilation until we receive the full bytes, since we are likely to find > a cache entry for them. > > R=clemensb@chromium.org > > Bug: v8:6847 > Change-Id: Ie5170d1274da3da6d52ff1b408abc7cb441bbe3c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002823 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66000} TBR=clemensb@chromium.org,thibaudm@chromium.org Change-Id: Idfa5b3f354816eb600ae7aab7857063d5d0d27ca No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6847 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2022949Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66001}
-
Thibaud Michaud authored
Before compiling the code section, check whether the bytes received so far match a cached module. If they do, delay compilation until we receive the full bytes, since we are likely to find a cache entry for them. R=clemensb@chromium.org Bug: v8:6847 Change-Id: Ie5170d1274da3da6d52ff1b408abc7cb441bbe3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002823 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66000}
-
- 21 Jan, 2020 1 commit
-
-
Clemens Backes authored
The test was supposed to manipulate the serialized bytes to make them invalid, but the value at the manipulated position was already 0, hence the bytes stayed valid. This went unnoticed before https://crrev.com/c/2010786, since there was a fallback anyway to re-compile the module if deserialization fails. This CL fixes this by using the right offset, and checking that the value there is not already zero. R=thibaudm@chromium.org Change-Id: Ie0eaf2c8ee9e8c4c477f717f3d8aed8564b3adbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2007493 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#65898}
-
- 17 Jan, 2020 1 commit
-
-
Thibaud Michaud authored
R=clemensb@chromium.org Bug: chromium:1041841 Change-Id: I4a5010fbf58a812e724ab95f2552dd4b6887113f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2004612 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65834}
-
- 18 Dec, 2019 1 commit
-
-
Thibaud Michaud authored
This is a reland of c509bb8c Original change's description: > Cache native modules in the wasm engine by their wire bytes. This is to > prepare for sharing {Script} objects between multiple {WasmModuleObject} > created from the same bytes. This also saves unnecessary compilation > time and memory. > > R=clemensb@chromium.org > > Bug: v8:6847 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65296} R=clemensb@chromium.org Bug: v8:6847 Change-Id: I8839c9ec96dc4141cf3c30916a62ccf86f5463ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1960287 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65500}
-
- 10 Dec, 2019 1 commit
-
-
Thibaud Michaud authored
Add a method to set the URL of a Wasm script from a WasmStreaming object. This will allow devtools to report the actual URL when it is available. R=clemensb@chromium.org Bug: v8:9762 Change-Id: Iccd41d76c9a4a2e1858716e8d555782404719faa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1944153Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#65405}
-
- 02 Dec, 2019 2 commits
-
-
Maya Lekova authored
This reverts commit c509bb8c. Reason for revert: Breaks arm64 - sim - MSAN, see https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/30050 Original change's description: > [wasm] Share native modules compiled from the same bytes > > Cache native modules in the wasm engine by their wire bytes. This is to > prepare for sharing {Script} objects between multiple {WasmModuleObject} > created from the same bytes. This also saves unnecessary compilation > time and memory. > > R=clemensb@chromium.org > > Bug: v8:6847 > Change-Id: Iad5f70efbfe3f0f134dcb851edbcec50691677e0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65296} TBR=clemensb@chromium.org,thibaudm@chromium.org Change-Id: I908b0f59bce26678d0b5d7fddc986384c40b4709 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6847 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946334Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65297}
-
Thibaud Michaud authored
Cache native modules in the wasm engine by their wire bytes. This is to prepare for sharing {Script} objects between multiple {WasmModuleObject} created from the same bytes. This also saves unnecessary compilation time and memory. R=clemensb@chromium.org Bug: v8:6847 Change-Id: Iad5f70efbfe3f0f134dcb851edbcec50691677e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65296}
-
- 26 Nov, 2019 1 commit
-
-
Clemens Backes authored
Make WasmFeatures a proper class which uses an EnumSet under the hood. This way, it inherits all behaviour of EnumSet like comparison, merge, etc. Accesses change from being simple field access into the struct to actually bit tests in the EnumSet. R=mstarzinger@chromium.org Bug: v8:10019 Change-Id: I768f92b90ac0294156f4482defba5ce00bc70165 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934334 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65184}
-
- 12 Nov, 2019 1 commit
-
-
Clemens Backes authored
UMA data shows that we currently still allocate up to ten code spaces per module. This is because the code size estimates are vastly off, especially if both Liftoff and TurboFan is being used. Also, code sizes differ by platform. This CL adds more logic to the {EstimateNativeModuleCodeSize} function to distinguish Liftoff and TurboFan, and to use different constants per platform. A largeish comment explains how the numbers were generated, and that they are an extreme over-generalization. However, without further information about the module, this is the best we can do. After all, being off even by a factor of two does not hurt too much, as explained in the comment. R=jkummerow@chromium.org Change-Id: Icd178f5f4d0c7c8fa29b11b6eff7d14e64a1af1c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910102 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#64913}
-
- 07 Nov, 2019 1 commit
-
-
Clemens Backes authored
This makes the {code_size_estimate} computation explicit in the caller, and removes one of the two {NewNativeModule} constructors. It turns out that the calculation is totally off in the streaming calculation phase, since no function bodies have been parsed yet. So all {WasmFunction::code} fields are still empty, and we compute an estimate that is way too low. This CL prepares the actual fix for that (by computing a better estimate at specific call sites). R=ahaas@chromium.org Bug: v8:9950 Change-Id: I68a891c97e5f65a9c7e73e21684bdfa7e261e216 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901273 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#64845}
-
- 31 Oct, 2019 1 commit
-
-
Z Nguyen-Huu authored
Currently, when debugging wasm, the internal script URL is shown, which has the form wasm://wasm/wasm-<hex-script-id>. With this change, if the module specifies a module name, it would report the URL as wasm://wasm/<module-name>-<hex-script-id>, as this will help the user identify what they are debugging. Bug: chromium:1017678 Change-Id: I26ff6249bd1e832d62402619a68b61c115c24640 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1888810 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64703}
-
- 07 Oct, 2019 1 commit
-
-
Clemens Backes authored
The {GetNearRuntimeStubEntry} and {GetNearCallTargetForFunction} functions need to find the code space that contains the current function. This lookup requires a lock and is non-trivial. The repeated lookup caused severe regressions. This CL introduces a {JumpTablesRef} struct which holds information about the jump tables to use. It can be looked up once and then used for a whole function or even several functions within the same code space (in {NativeModule::AddCompiledCode} which adds a whole vector of compilation results). This fixes the regressions. R=ahaas@chromium.org Bug: chromium:1004262, v8:9477 Change-Id: I50bd8327a131e3bee79d86b6d7e867a506959312 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1840153 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#64129}
-
- 26 Sep, 2019 1 commit
-
-
Jiayao Lin authored
DCHECK(IsAligned(addr, alignof(T))) is false on s390 debug simulator test case. So copy to an aligned buffer and we can relocate the serialized code. Change-Id: I8e4ad9ff25fd9a9e5478831250ff741c3e72a86f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1822860Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Reviewed-by: Clemens Backes [né Hammacher] <clemensb@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#63990}
-
- 13 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
This adds logic to choose the closest jump table for each call in wasm code. The "main jump table" (held in {NativeModule::main_jump_table_}) is still kept though and used for any external or indirect call. Any direct call from within wasm now chooses the jump table that corresponds to the code space that the code lives in. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ie52b5bb3a4a160cb754b8702c530f6feb182b3a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800576 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63760}
-
- 12 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
This moves the code to allocate the far jump table from {SetRuntimeStubs} to {AddCodeSpace} to allocate one such table per code space. Also, the {runtime_stub_table_} and {runtime_stub_entries_} fields do not make sense any more now and are replaced by calls to {GetNearRuntimeStubEntry} and {GetRuntimeStubId}. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ie1f5c9d4eb282270337a684c34f097d8077fdfbb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795348 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63700}
-
- 30 Jul, 2019 1 commit
-
-
Thibaud Michaud authored
Original CL: > [wasm] Simplify module creation > > This includes WasmEngine::NewNativeModule() and WasmModuleObject::New(). > The intent is to make the various ways of creating a module (sync, > async, deserialize, import) more similar. > > After this change, a NativeModule will always be created before a > WasmModuleObject. This will make it easier to look up a cached > NativeModule given its wire bytes. > > The following changes are made: > > * Use WasmCodeManager::EstimateNativeModuleCodeSize() to find the code > size estimate by default. A different code size estimate is only used in > tests. > * Change CompileJsToWasmWrappers() to allocate a new FixedArray instead of > assuming the array was created with the correct size. This simplifies > WasmModuleObject::New(), and matches what CompileToNativeModule() > does. > * Remove the WasmModuleObject::New() constructor that creates a > NativeModule. This case was only used in DeserializeNativeModule() and > in test code. > > Change-Id: I6bdfc425057f92de11abbbf702d052d40aa8267d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717497 > Commit-Queue: Ben Smith <binji@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62925} R=ahaas@chromium.org, clemensh@chromium.org CC=binji@chromium.org Change-Id: I03aa901a1df65af28f864d9aabe2b134ea132e99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1724213 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#62996}
-
- 25 Jul, 2019 2 commits
-
-
Zhi An Ng authored
This reverts commit 425fa3ae. Reason for revert: test failure https://bugs.chromium.org/p/v8/issues/detail?id=9554 reverting the root cause has merge conflicts due to changes in same file Original change's description: > [wasm] Simplify module creation > > This includes WasmEngine::NewNativeModule() and WasmModuleObject::New(). > The intent is to make the various ways of creating a module (sync, > async, deserialize, import) more similar. > > After this change, a NativeModule will always be created before a > WasmModuleObject. This will make it easier to look up a cached > NativeModule given its wire bytes. > > The following changes are made: > > * Use WasmCodeManager::EstimateNativeModuleCodeSize() to find the code > size estimate by default. A different code size estimate is only used in > tests. > * Change CompileJsToWasmWrappers() to allocate a new FixedArray instead of > assuming the array was created with the correct size. This simplifies > WasmModuleObject::New(), and matches what CompileToNativeModule() > does. > * Remove the WasmModuleObject::New() constructor that creates a > NativeModule. This case was only used in DeserializeNativeModule() and > in test code. > > Change-Id: I6bdfc425057f92de11abbbf702d052d40aa8267d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717497 > Commit-Queue: Ben Smith <binji@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62925} TBR=binji@chromium.org,ahaas@chromium.org,clemensh@chromium.org Change-Id: I8dcad7ddcd4601f657b6263bf22009907284fce3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719230Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62926}
-
Ben Smith authored
This includes WasmEngine::NewNativeModule() and WasmModuleObject::New(). The intent is to make the various ways of creating a module (sync, async, deserialize, import) more similar. After this change, a NativeModule will always be created before a WasmModuleObject. This will make it easier to look up a cached NativeModule given its wire bytes. The following changes are made: * Use WasmCodeManager::EstimateNativeModuleCodeSize() to find the code size estimate by default. A different code size estimate is only used in tests. * Change CompileJsToWasmWrappers() to allocate a new FixedArray instead of assuming the array was created with the correct size. This simplifies WasmModuleObject::New(), and matches what CompileToNativeModule() does. * Remove the WasmModuleObject::New() constructor that creates a NativeModule. This case was only used in DeserializeNativeModule() and in test code. Change-Id: I6bdfc425057f92de11abbbf702d052d40aa8267d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717497 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62925}
-
- 19 Jun, 2019 1 commit
-
-
Ben Smith authored
The debugger should be notified whenever a new Module is created so it displayed properly. Without this change, the Module is only displayed once, regardless of the number of times it is referenced (by other Workers, say). That is potentially reasonable behavior, but it doesn't match the way JavaScript does it. With this change, the debugger will display the sources like this: ``` ▼ top
localhost ▼ wasm ▼ wasm-82570336 wasm-82570336-0 ▼ worker.js localhost ▼ wasm wasm-82570336 ``` Change-Id: I61177e8a07e36ea8e2234aa25e75b1489c9da95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1666616Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#62297}
-
- 24 May, 2019 1 commit
-
-
Yang Guo authored
TBR=mvstanton@chromium.org,neis@chromium.org,ahaas@chromium.org Bug: v8:9247 Change-Id: I5433c863a54f3412d73df0d38aba3fdbcfac7ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627973 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61830}
-
- 23 May, 2019 2 commits
-
-
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}
-
Yang Guo authored
TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 30 Apr, 2019 2 commits
-
-
Frederik Gossen authored
Fix recognition of lazy functions when {--wasm-lazy-compilation} is used. Bug: chromium:956771 Change-Id: I3f9bb25ccf3920a6c3d266876faace8841dcdc61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585843Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Frederik Gossen <frgossen@google.com> Cr-Commit-Position: refs/heads/master@{#61114}
-
Mike Stanton authored
Failure addressed by not exposing the new test to the jitless environment. (jgruber@ on TBR). New enum RelocInfo::COMPRESSED_EMBEDDED_OBJECT created to support compressed pointers in generated code. Enum name EMBEDDED_OBJECT changed to FULL_EMBEDDED_OBJECT. RelocInfo::[set_]target_object() abstract away the difference between FULL_EMBEDDED_OBJECT and COMPRESSED_EMBEDDED_OBJECT. Compressed embedded objects can only be created at this time on x64 with pointer compression turned on. Arm64 constant pools don't support compressed objects at this time. NOPRESUBMIT=true Bug: v8:7703 TBR: jgruber@chromium.org Change-Id: Ifff53b041bab09b4b8c3e16085e5df4aa2b99f4f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588461Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#61104}
-
- 29 Apr, 2019 3 commits
-
-
Ross McIlroy authored
This reverts commit b5da9fcb. Reason for revert: Breaks pointer compression bot: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20pointer%20compression/3098 Original change's description: > [ptr-compr] New RelocInfo for compressed pointers. > > New enum RelocInfo::COMPRESSED_EMBEDDED_OBJECT created to support > compressed pointers in generated code. Enum name EMBEDDED_OBJECT > changed to FULL_EMBEDDED_OBJECT. > > RelocInfo::[set_]target_object() abstract away the difference between > FULL_EMBEDDED_OBJECT and COMPRESSED_EMBEDDED_OBJECT. > > Compressed embedded objects can only be created at this time on > x64 with pointer compression turned on. Arm64 constant pools don't > support compressed objects at this time. > > Bug: v8:7703 > Change-Id: I03bfd84effa33c65cf9bcefa5df680ab7eace9dd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547661 > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61076} TBR=ulan@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,ishell@chromium.org Change-Id: I262b2b98315fa987c5a66b1050dc726563ccdb2d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588135Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61087}
-
Clemens Hammacher authored
Our {Vector} template provides both {start} and {begin} methods. They return exactly the same value. Since the {begin} method is needed for iteration, and is also what standard containers provide, this CL switches all uses of the {start} method to use {begin} instead. Patchset 1 was auto-generated by using this clang AST matcher: callExpr( callee( cxxMethodDecl( hasName("start"), ofClass(hasName("v8::internal::Vector"))) ), argumentCountIs(0)) Patchset 2 was created by running clang-format. Patchset 3 then removes the now unused {Vector::start} method. R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,yangguo@chromium.org,verwaest@chromium.org Bug: v8:9183 Change-Id: Id9f01c92870872556e2bb3f6d5667463b0e3e5c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587381Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61081}
-
Mike Stanton authored
New enum RelocInfo::COMPRESSED_EMBEDDED_OBJECT created to support compressed pointers in generated code. Enum name EMBEDDED_OBJECT changed to FULL_EMBEDDED_OBJECT. RelocInfo::[set_]target_object() abstract away the difference between FULL_EMBEDDED_OBJECT and COMPRESSED_EMBEDDED_OBJECT. Compressed embedded objects can only be created at this time on x64 with pointer compression turned on. Arm64 constant pools don't support compressed objects at this time. Bug: v8:7703 Change-Id: I03bfd84effa33c65cf9bcefa5df680ab7eace9dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547661 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#61076}
-
- 03 Apr, 2019 2 commits
-
-
Frederik Gossen authored
Merged WasmCode::Tier into Execution Tier. Bug: v8:9003 Change-Id: I0ad439b8bc060f73e71d60ab9c93dd6bc18d05fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547852 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60610}
-
Clemens Hammacher authored
Using the Isolate's allocator when creating the WasmModule can lead to use-after-free situations when the NativeModule is shared across Isolates. R=mstarzinger@chromium.org Bug: v8:9079 Change-Id: I5a564852179cc5b9d4cbad2a002d3b6e14b01968 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550404Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60605}
-
- 02 Apr, 2019 2 commits
-
-
Clemens Hammacher authored
This CL adds all the necessary {WasmCodeRefScope}s in the code base, or at least a good approximation. A follow-up CL will enable a check that a {WasmCodeRefScope} exists whenever a pointer to a {WasmCode} object is returned from the {NativeModule}. This should flush out any missing scopes. R=titzer@chromium.org Bug: v8:8217 Change-Id: I54c7eb39aeb1acde38273c399396e6b1390a4cb2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533860 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60566}
-
Frederik Gossen authored
This is a reland of 09fa63a9 Original change's description: > [wasm-hints] Enabled Lazy Compilation by Hint > > Hints for lazy compilation are now taken into consideration. If the > custom hints section suggests lazy compilatin we do so unless the module > consists of a single function. > > Bug: v8:9003 > Change-Id: Ibdc400453cee20d4d5c814733887b38fb675b220 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535827 > Commit-Queue: Frederik Gossen <frgossen@google.com> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60557} Bug: v8:9003 No-Try: true Change-Id: I8d6f4518aa548c815fba4e6e62d2206129336cc6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547851 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60564}
-
- 01 Apr, 2019 1 commit
-
-
Frederik Gossen authored
This reverts commit 09fa63a9. Reason for revert: Falkes on https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20shared/29942 Original change's description: > [wasm-hints] Enabled Lazy Compilation by Hint > > Hints for lazy compilation are now taken into consideration. If the > custom hints section suggests lazy compilatin we do so unless the module > consists of a single function. > > Bug: v8:9003 > Change-Id: Ibdc400453cee20d4d5c814733887b38fb675b220 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535827 > Commit-Queue: Frederik Gossen <frgossen@google.com> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60557} TBR=mstarzinger@chromium.org,clemensh@chromium.org,frgossen@google.com Change-Id: I18dd424fe8cf05f220f7498bb1ebe4b9fce7d240 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9003 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547668Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60558}
-