- 05 Dec, 2016 1 commit
-
-
titzer authored
R=clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2551463002 Cr-Commit-Position: refs/heads/master@{#41477}
-
- 23 Nov, 2016 3 commits
-
-
gdeepti authored
Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances. - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate. - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected. - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected. - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance. R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6 Committed: https://crrev.com/3c98e339599b068f1ed630afb7601ff942424d31 Review-Url: https://codereview.chromium.org/2471883003 Cr-Original-Original-Commit-Position: refs/heads/master@{#41121} Cr-Original-Commit-Position: refs/heads/master@{#41198} Cr-Commit-Position: refs/heads/master@{#41234}
-
hablich authored
Revert of [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. (patchset #13 id:240001 of https://codereview.chromium.org/2471883003/ ) Reason for revert: Test crashes after an unrelated revert: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/7189 Reverting because of recommendation from WASM team. Original issue's description: > [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. > > Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances. > - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate. > - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected. > - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected. > - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance. > > R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org > > Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6 > Committed: https://crrev.com/3c98e339599b068f1ed630afb7601ff942424d31 > Cr-Original-Commit-Position: refs/heads/master@{#41121} > Cr-Commit-Position: refs/heads/master@{#41198} TBR=bradnelson@chromium.org,mtrofin@chromium.org,titzer@chromium.org,gdeepti@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2529573002 Cr-Commit-Position: refs/heads/master@{#41208}
-
gdeepti authored
Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances. - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate. - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected. - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected. - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance. R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6 Review-Url: https://codereview.chromium.org/2471883003 Cr-Original-Commit-Position: refs/heads/master@{#41121} Cr-Commit-Position: refs/heads/master@{#41198}
-
- 21 Nov, 2016 1 commit
-
-
eholk authored
This fixes a bug found by the fuzzer where we would attempt to dereference a null handle if memory allocation failed. In this case, the failure was because the amount of memory requested was above V8's hardcoded limit. BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=666741 Review-Url: https://codereview.chromium.org/2514983002 Cr-Commit-Position: refs/heads/master@{#41158}
-
- 19 Nov, 2016 2 commits
-
-
machenbach authored
Revert of [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. (patchset #10 id:180001 of https://codereview.chromium.org/2471883003/ ) Reason for revert: Breaks gc stress: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/7114 Original issue's description: > [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. > > Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances. > - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate. > - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected. > - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected. > - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance. > > R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org > > Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6 > Cr-Commit-Position: refs/heads/master@{#41121} TBR=bradnelson@chromium.org,mtrofin@chromium.org,titzer@chromium.org,gdeepti@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2512323004 Cr-Commit-Position: refs/heads/master@{#41122}
-
gdeepti authored
Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances. - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate. - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected. - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected. - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance. R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2471883003 Cr-Commit-Position: refs/heads/master@{#41121}
-
- 17 Nov, 2016 1 commit
-
-
eholk authored
With this change, WebAssembly.Memory objects have backing stores allocated as an 8GB region where everything beyond the size of the Wasm heap is inaccessible. GrowMemory is now implemented by changing the protection on the guard regions to make the new portions of the heap accessible. Guard pages are not enabled by default, but this change adds a flag and a test variant to make sure we get test coverage on them. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277 Review-Url: https://codereview.chromium.org/2396433008 Cr-Commit-Position: refs/heads/master@{#41089}
-
- 16 Nov, 2016 1 commit
-
-
titzer authored
R=clemensh@chromium.org,mtrofin@chromium.org BUG= Review-Url: https://codereview.chromium.org/2510673002 Cr-Commit-Position: refs/heads/master@{#41043}
-
- 11 Nov, 2016 1 commit
-
-
titzer authored
This CL moves all heap-allocated WASM data structures, both ones that are bonafide JSObjects and ones that are FixedArrays only, into a consistent place with consistent layout. Note that not all accessors are complete, and I haven't fully spread the new static typing goodness to all places in the code. R=ahaas@chromium.org,rossberg@chromium.org CC=gdeepti@chromium.org,mtrofin@chromium.org,clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2490663002 Cr-Commit-Position: refs/heads/master@{#40913}
-
- 08 Nov, 2016 1 commit
-
-
gdeepti authored
- When module bytes have a memory maximum defined, compiled module object should set maximum memory - Exported memory objects should set maximum value on the memory objects - Update tests to use declared maximum values. R=ahaas@chromium.org Review-Url: https://codereview.chromium.org/2474333003 Cr-Commit-Position: refs/heads/master@{#40820}
-
- 29 Oct, 2016 1 commit
-
-
titzer authored
This CL implements basic table import functionality. Missing: growing of tables (WebAssembly.Grow) doesn't change dispatch tables Missing: allowing larger table imports than minimum size R=rossberg@chromium.org,bradnelson@chromium.org BUG=v8:5507 Review-Url: https://codereview.chromium.org/2454503005 Cr-Commit-Position: refs/heads/master@{#40661}
-
- 28 Oct, 2016 3 commits
-
-
machenbach authored
Revert of [wasm] Support for restricted table imports. (patchset #7 id:120001 of https://codereview.chromium.org/2454503005/ ) Reason for revert: GC stress failures: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/8857 Original issue's description: > [wasm] Support for restricted table imports. > > This CL implements basic table import functionality. > > Missing: growing of tables (WebAssembly.Grow) doesn't change dispatch tables > Missing: allowing larger table imports than minimum size > > R=rossberg@chromium.org,bradnelson@chromium.org > BUG=v8:5507 TBR=bradnelson@chromium.org,rossberg@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5507 Review-Url: https://codereview.chromium.org/2456193006 Cr-Commit-Position: refs/heads/master@{#40656}
-
eholk authored
BUG= Review-Url: https://codereview.chromium.org/2460773003 Cr-Commit-Position: refs/heads/master@{#40654}
-
titzer authored
This CL implements basic table import functionality. Missing: growing of tables (WebAssembly.Grow) doesn't change dispatch tables Missing: allowing larger table imports than minimum size R=rossberg@chromium.org,bradnelson@chromium.org BUG=v8:5507 Review-Url: https://codereview.chromium.org/2454503005 Cr-Commit-Position: refs/heads/master@{#40652}
-
- 26 Oct, 2016 1 commit
-
-
titzer authored
BUG=chromium:575167, v8:5507 R=rossberg@chromium.org,bradnelson@chromium.org CC=ahaas@chromium.org Review-Url: https://codereview.chromium.org/2447013004 Cr-Commit-Position: refs/heads/master@{#40601}
-
- 25 Oct, 2016 1 commit
-
-
titzer authored
R=bradnelson@chromium.org, rossberg@chromium.org BUG=v8:5507 Review-Url: https://codereview.chromium.org/2443353002 Cr-Commit-Position: refs/heads/master@{#40554}
-
- 21 Oct, 2016 1 commit
-
-
gdeepti authored
When the instance has imported memory, calling GrowMemory should update the memory object to have a consistent view of the memory. This fixes the failing emscripten test case, added a reduced test that simulates the same behavior. R=titzer@chromium.org, dschuff@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2438673006 Cr-Commit-Position: refs/heads/master@{#40490}
-
- 19 Oct, 2016 2 commits
-
-
titzer authored
This CL refactors the handling of metadata associated with WebAssembly modules to reduce the duplicate marshalling of data from the C++ world to the JavaScript world. It does this by wrapping the C++ WasmModule* object in a Foreign that is rooted from the on-heap WasmCompiledModule (which is itself just a FixedArray). Upon serialization, the C++ object is ignored and the original WASM wire bytes are serialized. Upon deserialization, the C++ object is reconstituted by reparsing the bytes. This is motivated by increasing complications in implementing the JS API, in particular WebAssembly.Table, which must perform signature canonicalization across instances. Additionally, this CL implements the proper base + offset initialization behavior for tables. R=rossberg@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,yangguo@chromium.org BUG=v8:5507, chromium:575167, chromium:657316 Review-Url: https://chromiumcodereview.appspot.com/2424623002 Cr-Commit-Position: refs/heads/master@{#40434}
-
titzer authored
R=clemensh@chromium.org,ahaas@chromium.org BUG= Review-Url: https://chromiumcodereview.appspot.com/2428343005 Cr-Commit-Position: refs/heads/master@{#40426}
-
- 18 Oct, 2016 1 commit
-
-
gdeepti authored
BUG= Review-Url: https://codereview.chromium.org/2410763002 Cr-Commit-Position: refs/heads/master@{#40411}
-
- 17 Oct, 2016 2 commits
-
-
heimbuef authored
This adds more useful information to the v8-heap-stats tool. BUG=v8:5489 Review-Url: https://codereview.chromium.org/2394213003 Cr-Commit-Position: refs/heads/master@{#40361}
-
rossberg authored
R=ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2414053002 Cr-Commit-Position: refs/heads/master@{#40357}
-
- 13 Oct, 2016 2 commits
-
-
rossberg authored
R=ahaas@chromium.org, titzer@chromium.org BUG=v8:5507 Review-Url: https://codereview.chromium.org/2421453002 Cr-Commit-Position: refs/heads/master@{#40280}
-
rossberg authored
R=ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2411963003 Cr-Commit-Position: refs/heads/master@{#40273}
-
- 12 Oct, 2016 1 commit
-
-
clemensh authored
For the asm.js to WASM pipeline, the current stack traces only show low-level WASM information. This CL maps this back to asm.js source positions. It does so by attaching the asm.js source Script to the compiled WASM module, and emitting a delta-encoded table which maps from WASM byte offsets to positions within that Script. As asm.js code does not throw exceptions, we only store a mapping for call instructions. The new AsmJsWasmStackFrame implementation inherits from WasmStackFrame, but contains the logic to provide the source script and the position inside of it. What is still missing is the JSFunction object returned by CallSite.getFunction(). We currently return null. R=jgruber@chromium.org, titzer@chromium.org BUG=v8:4203 Review-Url: https://codereview.chromium.org/2404253002 Cr-Commit-Position: refs/heads/master@{#40205}
-
- 07 Oct, 2016 1 commit
-
-
titzer authored
R=mtrofin@chromium.org,gdeepti@chromium.org BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2392943006 Cr-Commit-Position: refs/heads/master@{#40076}
-
- 29 Sep, 2016 2 commits
-
-
titzer authored
R=bradnelson@chromium.org,mtrofin@chromium.org BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2384513002 Cr-Commit-Position: refs/heads/master@{#39885}
-
titzer authored
R=bradnelson@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org BUG= Review-Url: https://codereview.chromium.org/2383463002 Cr-Commit-Position: refs/heads/master@{#39861}
-
- 27 Sep, 2016 1 commit
-
-
titzer authored
[0xC] Convert to stack machine semantics. [0xC] Use section codes instead of names. [0xC] Add elements section decoding. [0xC] Decoding of globals section. [0xC] Decoding of memory section. [0xC] Decoding of imports section. [0xC] Decoding of exports section. [0xC] Decoding of data section. [0xC] Remove CallImport bytecode. [0xC] Function bodies have an implicit block. [0xC] Remove the bottom label from loops. [0xC] Add signatures to blocks. [0xC] Remove arities from branches. Add tests for init expression decoding. Rework compilation of import wrappers and how they are patched. Rework function indices in debugging. Fix ASM->WASM builder for stack machine. Reorganize asm.js foreign functions due to import indices change. R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org BUG=chromium:575167 LOG=Y Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9 Review-Url: https://codereview.chromium.org/2345593003 Cr-Original-Commit-Position: refs/heads/master@{#39678} Cr-Commit-Position: refs/heads/master@{#39795}
-
- 26 Sep, 2016 3 commits
-
-
jyan authored
Fix "error: ‘maximum’ may be used uninitialized in this function" R=ahaas@chromium.org, titzer@chromium.org, rossberg@chromium.org BUG= Review-Url: https://codereview.chromium.org/2371833002 Cr-Commit-Position: refs/heads/master@{#39741}
-
ahaas authored
The WebAssembly spec requires a HasProperty() check for the maximum property of the descriptor object which is used to set up a WebAssembly.Memory object or a WebAssembly.Table object. The original implementation only approximated the HasProperty() check. It used Get() to get the value of the maximum property of the descriptor object and compared the resulting value to {undefined}. However, this approximation is incorrect if the property exists but its value is {undefined}. R=titzer@chromium.org, franzih@chromium.org BUG=chromium:649461 TEST=mjsunit/wasm/memory Review-Url: https://codereview.chromium.org/2367673003 Cr-Commit-Position: refs/heads/master@{#39722}
-
ahaas authored
BUG=chromium:649283 R=titzer@chromium.org TEST=mjsunit/wasm/table Review-Url: https://codereview.chromium.org/2358923003 Cr-Commit-Position: refs/heads/master@{#39711}
-
- 23 Sep, 2016 2 commits
-
-
machenbach authored
Revert of [wasm] Master CL for Binary 0xC changes. (patchset #26 id:490001 of https://codereview.chromium.org/2345593003/ ) Reason for revert: Main suspect for tsan: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11893 Also changes layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10036 +mips builder: https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/4032 Original issue's description: > [wasm] Master CL for Binary 0xC changes. > > [0xC] Convert to stack machine semantics. > [0xC] Use section codes instead of names. > [0xC] Add elements section decoding. > [0xC] Decoding of globals section. > [0xC] Decoding of memory section. > [0xC] Decoding of imports section. > [0xC] Decoding of exports section. > [0xC] Decoding of data section. > [0xC] Remove CallImport bytecode. > [0xC] Function bodies have an implicit block. > [0xC] Remove the bottom label from loops. > [0xC] Add signatures to blocks. > [0xC] Remove arities from branches. > Add tests for init expression decoding. > Rework compilation of import wrappers and how they are patched. > Rework function indices in debugging. > Fix ASM->WASM builder for stack machine. > Reorganize asm.js foreign functions due to import indices change. > > R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org > BUG=chromium:575167 > LOG=Y > > Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9 > Cr-Commit-Position: refs/heads/master@{#39678} TBR=ahaas@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,rossberg@chromium.org,bradnelson@google.com,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2361053004 Cr-Commit-Position: refs/heads/master@{#39685}
-
titzer authored
[0xC] Convert to stack machine semantics. [0xC] Use section codes instead of names. [0xC] Add elements section decoding. [0xC] Decoding of globals section. [0xC] Decoding of memory section. [0xC] Decoding of imports section. [0xC] Decoding of exports section. [0xC] Decoding of data section. [0xC] Remove CallImport bytecode. [0xC] Function bodies have an implicit block. [0xC] Remove the bottom label from loops. [0xC] Add signatures to blocks. [0xC] Remove arities from branches. Add tests for init expression decoding. Rework compilation of import wrappers and how they are patched. Rework function indices in debugging. Fix ASM->WASM builder for stack machine. Reorganize asm.js foreign functions due to import indices change. R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org BUG=chromium:575167 LOG=Y Review-Url: https://codereview.chromium.org/2345593003 Cr-Commit-Position: refs/heads/master@{#39678}
-
- 21 Sep, 2016 1 commit
-
-
ahaas authored
Set up Wasm Table and Memory constructors This only provides skeletons so far: the constructors work, but the types are not wired up with the import/export mechanism yet; methods are still nops. Also, fix errors generated from Wasm to be proper Error/TypeError instances instead of just strings. I took over this CL from rossberg@chromium.org. The original CL is https://codereview.chromium.org/2342623002 R=titzer@chromium.org, rossberg@chromium.org Review-Url: https://codereview.chromium.org/2350643003 Cr-Commit-Position: refs/heads/master@{#39588}
-
- 17 Sep, 2016 1 commit
-
-
gdeepti authored
test-run-wasm-module cctests broken in debug since recent refactoring changes for moving Compilation/Instantiation off the module object (https://codereview.chromium.org/2320723005). The problem here is that SetupIsolateForWasm tries to add the same property to a module_object multiple times and hits a DCHECK when this property is found on a lookup. - Fixed to use the setup method only once when CcTest::InitIsolateOnce is used. - Move setup method to test as this is only used for cctests/fuzzers. The install method should take care of this in the regular JS pipeline. R=mtrofin@chromium.org, ahaas@chromium.org Review-Url: https://codereview.chromium.org/2342263002 Cr-Commit-Position: refs/heads/master@{#39484}
-
- 12 Sep, 2016 1 commit
-
-
mtrofin authored
Moved the compilation/instantiation pipeline to work off the module object (JSObject), making the compiled module data (the FixedArray) an implementation detail. This: - simplifies the code by removing duplicate decode->compile->instantiate sequences - sets up the stage for "dressing up" the runtime model with stronger typed APIs - helps relanding this CL: https://codereview.chromium.org/2305903002/. It turns out that GCs during the cloning/instantiation events cause trouble, and centering the source of truth on the module object helps address this issue. In the process, clarified cctest setup for wasm-capable isolates, and changed signatures for consistency (using ModuleOrigin througout). BUG= Review-Url: https://codereview.chromium.org/2320723005 Cr-Commit-Position: refs/heads/master@{#39360}
-
- 01 Sep, 2016 1 commit
-
-
mtrofin authored
This unblocks avoiding the separate code template. In the upcoming CL doing away with code templates, We need to track instances through the module object, which needs to be separate from the compiled module data, which is then shared with the first instance. This CL ensures we have the object available in the asm.js scenario, too. Note that this CL also unifies the error messaging when module decoding fails. BUG=v8:5316 Review-Url: https://codereview.chromium.org/2299873002 Cr-Commit-Position: refs/heads/master@{#39097}
-
- 31 Aug, 2016 1 commit
-
-
marja authored
This way, many files which only need CompilationInfo but not compiler.h and its dependencies can include just compilation-info.h. BUG= Review-Url: https://codereview.chromium.org/2284313003 Cr-Commit-Position: refs/heads/master@{#39038}
-