- 12 May, 2020 1 commit
-
-
Clemens Backes authored
This is a reland of 902f48bd, fixed to avoid lock inversion problems detected by TSan. Original change's description: > [wasm][debug] Fix tier down for multiple isolates > > If multiple isolates are using the same module, we need to keep it > tiered down as long as any isolate still has a debugger open. > Also, we cannot short-cut the {NativeModule::TierDown} method, since the > previously triggered tier down might not have finished yet. > For now, each isolate starts an independent tier down (i.e. a full > recompilation). We could optimize this later by skipping functions that > are already tiered down, or are already scheduled for tier down, but we > still need to wait for tier-down to finish on each isolate. > > R=thibaudm@chromium.org > > Bug: v8:10359 > Change-Id: I7ea6a6f5d3977e48718ac5bc94f9831541f6173f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190758 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67716} Bug: v8:10359 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: Ie98cf073fc79e5c6991df6d4466de7b560274070 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2194451 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67754}
-
- 11 May, 2020 1 commit
-
-
Clemens Backes authored
Passing an isolate to {RecompileNativeModule} feels wrong, since compilation and the generated code are totally isolate-independent. In fact, the isolate is only used for updating counters. Instead of passing the counters instead, this CL just refactors the code to support a nullptr for the counters everywhere (some code paths already supported that). The few recompilation would not make a significant difference in the histograms anyway, and even have the risk of skewing the data. Drive-by 1: Rename {TierUp} to {StartTierUp} and update comments. Drive-by 2: Remove non-actionable TODO. R=thibaudm@chromium.org Bug: v8:10359 Change-Id: Ic027f939bbc55398b90784922130fe1fe5573b0c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187638Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67708}
-
- 06 May, 2020 1 commit
-
-
Clemens Backes authored
Avoid templates, just encode all wasm opcodes as 2-byte LEB instead. R=zhin@chromium.org Bug: v8:10258 Change-Id: I3bfd5235b235a5d9366e0007e915a2c02a09b0d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2182638Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67625}
-
- 24 Apr, 2020 1 commit
-
-
Clemens Backes authored
The cctests for breakpoints were still executing in the interpreter. This CL moves them over to Liftoff. Note that the additional methods on {DebugInfo} will be reused for other purposes, see https://crrev.com/c/1941139. R=jkummerow@chromium.org Bug: v8:10389 Change-Id: Ia88150612377d6e7db0514af1efe091124b3ddce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2162852Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67360}
-
- 20 Apr, 2020 1 commit
-
-
Jakob Kummerow authored
Behind --experimental-wasm-gc flag. Bug: v8:7748 Change-Id: Ib96af9c5bde33f1b88862286a37872dbe70d856b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154198 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#67251}
-
- 16 Apr, 2020 1 commit
-
-
Ng Zhi An authored
SIMD opcodes consist of the prefix byte, then an LEB128 encoded int. We were decoding this incorrectly as a fixed uint8. This fixes the decoder to properly handle multi bytes. In some cases, the multi byte logic is applied to all prefixed opcodes. This is not a problem, since for values < 0x80, the LEB encoding is a single byte, and decodes to the same int. If the prefix opcode has instructions with index >= 0x80, it would be required to be LEB128 encoded anyway. There are a bunch of trivial changes to test-run-wasm-simd, to change the macro from BUILD to BUILD_V, the former only works for single byte opcodes, the latter is a new template-based macro that correct handles multi-byte opcodes. The only unchanged test is the shuffle fuzzer test, which builds its own sequence of bytes without using the BUILD macro. Bug: v8:10258 Change-Id: Ie7377e899a7eab97ecf28176fd908babc08d0f19 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2118476 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#67186}
-
- 14 Apr, 2020 1 commit
-
-
Clemens Backes authored
Before the "debug" flag was stored on the {CompilationEnv}. But each background compilation task only gets the {CompilationEnv} once when starting compilation, so by the time it picks up the "Liftoff for debugging" compilation jobs, it might still compile them without the debug flag being set. This leads to flakes in the "debug-step-into-wasm" test, because we won't stop in the function prologue when stepping in (because the function prologue does not check the "hook on function call" flag if debug mode was not enabled). This CL does not increase the size of a compilation unit, since both the tier and the debug flag only need a single byte each. As a nice side effect, this change allows us to remove the lock in {CreateCompilationEnv}, because no modifyable flag is read any more. R=thibaudm@chromium.org Bug: v8:10410 Change-Id: Ic296ea0c4dd1d4dedde119f0536e87e5d301b5a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144116Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67115}
-
- 27 Mar, 2020 1 commit
-
-
Clemens Backes authored
There are only three tests with differing behaviour if Liftoff is used for debugging. This CL thus stages the --debug-in-liftoff flag behind --future (tested by the "future" variant) and excludes the three tests. This allows us to test the other (already working) tests for regressions, and iteratively shrinking down the list of failing tests. Drive-by: Tier down modules in tests before testing debugging features to avoid hitting a DCHECK in Liftoff recompilation for debugging. R=thibaudm@chromium.org, ecmziegler@chromium.org Bug: v8:10351 Change-Id: I3b1dd1a29258ecf13c1f60020fb06358005558d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122021Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66889}
-
- 23 Mar, 2020 1 commit
-
-
Clemens Backes authored
The spec was changed such that traps are not catchable in wasm: https://github.com/WebAssembly/exception-handling/pull/93 This CL implements this in V8 by adding a private symbol as a property to all uncatchable exceptions. It also adds a number of tests. R=jkummerow@chromium.org CC=aheejin@chromium.org Bug: v8:10194 Change-Id: I498531762e8876f809d3b8aeb72ccc053e0e3cd4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2113375 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#66824}
-
- 20 Mar, 2020 1 commit
-
-
Ng Zhi An authored
Introduces a new macro BUILD_V (v is for vector) that pushes bytes into a vector (instead of directly in an array initializer, see BUILD). This has the positive effect of being able to handle opcodes of multiple bytes (e.g. SIMD opcodes bigger that 0xfd80). Because of this "API" change, our helper macros in test-run-wasm-simd.cc and wasm-run-utils.h need to change too. So, we introduce new macros (suffixed by _V), that will call the appropriate lambdas defined in BUILD_V, that knows how to push bytes into the vector, and also can handle multi-byte opcodes. This design has a bit of duplication and ugliness, but was chosen to reduce the impact of existing tests. No restructuring of test code is required, we only need to add suffix _V. Note that we do not have multi-byte opcodes yet (in wasm-opcodes.h), this change will be breaking, and requires all the tests to be updated to use _V macros first. Bug: v8:10258 Change-Id: I86638a548fe2f9714c1cfb3bd691fb7b49bfd652 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2107650 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66812}
-
- 19 Mar, 2020 1 commit
-
-
Philip Pfaffe authored
This implements the first part of WebAssembly debug evaluate. The patch includes the foundation required to execute evaluator modules. It only implements the first of the APIs of the evaluator module spec. Bug: chromium:1020120 Change-Id: I06ec98a63d0a0ec8d81c2eac4319c4b85d3e16c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089936 Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#66787}
-
- 12 Mar, 2020 1 commit
-
-
Jakob Kummerow authored
In preparation for adding reference types, which need an additional parameter to indicate the referenced type. Bug: v8:7748 Change-Id: If4023f3d9c7f42ed603b69c43356d2e8b81a0daa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2091471 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66687}
-
- 27 Feb, 2020 1 commit
-
-
Clemens Backes authored
Most function signatures are created once and never changed. Hence pass them as const pointer. This makes it clear in function signatures that these parameters will not be modified. This also avoids a few ugly const_casts where we were passing pointers to constexpr FunctionSigs via non-const pointers. R=jkummerow@chromium.org Bug: v8:10155 Change-Id: Ieb658ab5582bff276f76babdaf7ddb8f72bd4790 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072739Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66478}
-
- 24 Feb, 2020 1 commit
-
-
Clemens Backes authored
This extends the debug side table to also store register locations in addition to constants and stack values. Previously, every value that was not constant was assumed to be spilled to the stack. This made sense, because without breakpoints we would only emit debug side table entries at call sites, where all registers are spilled. With breakpoints, this changes. At break locations, values might be live in registers. The logic to decide whether a value will live in the register or on the stack is extended, because we sometimes generate the debug side table entry at a point where the registers are not spilled yet. The debug side table entry creation needs to account for that, and assume that these registers will still be spilled. R=thibaudm@chromium.org Bug: v8:10147, v8:10222 Change-Id: I3b020dfaa29fc007047663706ee286180a996bfd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066960 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#66407}
-
- 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}
-
- 24 Jan, 2020 2 commits
-
-
Ng Zhi An authored
Remove the execution tier check for simd tests. On archs without Liftoff, those tests that are configured to run on Liftoff will fail with this check, since they bail out to TF. We remove this check for now, but will think of a way to enforce this in a more platform specific way. Bug: v8:9909 Change-Id: Id56f841fe6e342434af3dbcdaef0a8a284614994 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2019924Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65983}
-
Ng Zhi An authored
This relands commit 009993ad. The fix is in liftoff-assembler-ia32.h, the codegen was incorrect. Original change's description: > Implement f32x4.splat and enable handling this in Liftoff. > > We add a new macro for defining test cases to run on TurboFan, Liftoff, > interpreter, and scalar lowering. > > Also add an assertion that the execution tier used is what we expected > it to be. This is useful for Liftoff, because by default it falls back > to TurboFan when it encounters an unimplemented opcode. > > Bug: v8:9909 Bug: v8:9909 Change-Id: I7daacbe8b195d9212367190c515b0babbc457a88 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2018043Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65963}
-
- 23 Jan, 2020 2 commits
-
-
Clemens Backes authored
This reverts commit 009993ad. Reason for revert: New test fails, see https://ci.chromium.org/p/v8/builders/ci/V8%20Linux/35534 and https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/23778 Original change's description: > [liftoff][wasm-simd] Implement f32x4.splat > > Implement f32x4.splat and enable handling this in Liftoff. > > We add a new macro for defining test cases to run on TurboFan, Liftoff, > interpreter, and scalar lowering. > > Also add an assertion that the execution tier used is what we expected > it to be. This is useful for Liftoff, because by default it falls back > to TurboFan when it encounters an unimplemented opcode. > > Bug: v8:9909 > Change-Id: I594955fce778173191fc44c38c4f956a05e77839 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2014753 > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65954} TBR=clemensb@chromium.org,zhin@chromium.org Change-Id: Ie6970a8c29baab149150dd734a95f89be5fd89ff No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9909 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2017722Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65958}
-
Ng Zhi An authored
Implement f32x4.splat and enable handling this in Liftoff. We add a new macro for defining test cases to run on TurboFan, Liftoff, interpreter, and scalar lowering. Also add an assertion that the execution tier used is what we expected it to be. This is useful for Liftoff, because by default it falls back to TurboFan when it encounters an unimplemented opcode. Bug: v8:9909 Change-Id: I594955fce778173191fc44c38c4f956a05e77839 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2014753 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65954}
-
- 14 Jan, 2020 1 commit
-
-
Ng Zhi An authored
Add kWasmS128 to the list of supported types, and implement Fill for all the architectures so that LocalGet works. Add a new test file to contain tests that run only on Liftoff, and assert that the code is indeed compiled by Liftoff. We cannot rely on the nooptimization variant for testing because by default, if Liftoff compilation fails, it will fall back to Turbofan, and we accidentally get a test passing. We skip these tests on mips architecture that don't support SIMD, since there is no way to implement these, and we don't have a "lowering" phase for Liftoff. As we implement more of SIMD in Liftoff, we can add more tests to this file and ensure correctness. Future patches will introduce support for globals and params. Bug: v8:9909 Change-Id: I7fc911f2d588d60c709ddb258b2efc1f22805fab Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1999470 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65768}
-
- 03 Dec, 2019 1 commit
-
-
Emanuel Ziegler authored
The following changes were introduced with the recent proposal update: - OOB access with 0 length traps - Double drop of segments is allowed - Dropped segments are treated like having size 0 (OOB error) - Active segments are dropped right after initialization R=ahaas@chromium.org Change-Id: I4e9fc4d9212841c7d858585c672143f99287520d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946355Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#65305}
-
- 19 Jul, 2019 1 commit
-
-
Michael Starzinger authored
This makes sure the language mode of the module is correctly propagated through the WebAssembly module, so that exported functions are allocated with the correct language mode. It extends the existing {ModuleOrigin} enum to consist of three values now. R=clemensh@chromium.org TEST=mjsunit/regress/wasm/regress-985154 BUG=chromium:985154 Change-Id: Id7b566738b1e710cc5001b894022bcd0f2c01bc3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708484 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62826}
-
- 21 Jun, 2019 1 commit
-
-
Sigurd Schneider authored
v8memory.h does not have V8 specific definitions, and having it in base makes it clear that every component may include the file. It also ensures that including it does not create spurious dependencies on v8_base. Change-Id: I565f63b25f33a9ada19d7b2ac5990863ab17f4a7 Bug: v8:9183, v8:8855 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1657923 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62309}
-
- 23 May, 2019 1 commit
-
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
- 22 May, 2019 1 commit
-
-
Andreas Haas authored
Up until now, we cached export wrappers per export index. With the anyref proposal potentially many more functions will need export wrappers, e.g. any function that is stored in a table, and any function accessed by the new ref.func instruction. With this CL, we change the caching scheme an do the caching per signature. Thereby we can guarantee that any export wrapper which potentially exists can be stored in the cache. For cctests which use wasm-run-utils, we don't know the size of the cache anymore ahead of time. However, we assume that no more than 5 signatures will be used in any cctest. If this assumption is not true, we can just adjust the number. The cache is now accessed in all code paths where we need an export wrapper. Bug: chromium:962850 Change-Id: I32df60dfa7801d1e71f7d837da091f388198af1f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615247 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61752}
-
- 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}
-
- 07 May, 2019 1 commit
-
-
Santiago Aboy Solanes authored
GraphBuilderTester was introduced at a time where RawMachineAssembler was going to be deprecated (https://codereview.chromium.org/1423923003/). Now we know that it's not going to happen any time soon. Since GraphBuilderTester it's only used in one test which can use RawMachineAssembler, I updated it and removed the class. Now the .h file had another class, which is now the only class in the file. Therefore, I renamed it and updated the include calls to it. Also updated the include commands: some were not necessary, and some others could be moved to more aptly places. Bug: v8:9183 Change-Id: I44bf16090c0515b1b9ff6cbded1bdb0adb4e44e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594563Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#61269}
-
- 11 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
The {code_table_} in {NativeModule} is protected by the {allocation_mutex_}. The {code} and {code_table} accessors did not acquire this lock though. This CL removes the unsafe {code_table} accessor, renames {code} to {GetCode} and protects it by a lock. R=mstarzinger@chromium.org Bug: v8:9112 Change-Id: Id2df68460b4c10291a49b4016b9574e02744e8b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1561315Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60779}
-
- 05 Apr, 2019 1 commit
-
-
Ben Smith authored
This is a reland of 63608968 The previous CL failed on Windows, but it was a general bug. The dropped_elem_segments was not being set on the instance properly in cctests, so`table.init` instructions would fail by reading uninitialized data. I took this opportunity to also add an implementation of `elem.drop` in the interpreter, and ported the JS tests for those too. Original change's description: > [wasm] Implement table.init for interpreter > > This also fixes CheckCallViaJS when a trap occurs. In that case, the > trap callback is called instead of an exception being thrown, so if it > isn't handled, a bogus result will be returned instead. > > Bug: v8:8965 > Change-Id: I560e89f353756df23c062fb8c9484d9971c19253 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539078 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Ben Smith <binji@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60473} Bug: v8:8965 Change-Id: Ia547d9530b7ca67fde5bd94539f49153b796e82d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547142 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60664}
-
- 03 Apr, 2019 1 commit
-
-
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}
-
- 02 Apr, 2019 1 commit
-
-
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}
-
- 27 Mar, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I3a939d65ec8468f034d4670d9b14a911e5ef5a61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541044Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60492}
-
- 26 Mar, 2019 2 commits
-
-
Michael Achenbach authored
This reverts commit 63608968. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/19535 Original change's description: > [wasm] Implement table.init for interpreter > > This also fixes CheckCallViaJS when a trap occurs. In that case, the > trap callback is called instead of an exception being thrown, so if it > isn't handled, a bogus result will be returned instead. > > Bug: v8:8965 > Change-Id: I560e89f353756df23c062fb8c9484d9971c19253 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539078 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Ben Smith <binji@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60473} TBR=binji@chromium.org,mstarzinger@chromium.org Change-Id: Iee528ac2f16988b25579af3555e6f17974cb0b05 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8965 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539498Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60474}
-
Ben Smith authored
This also fixes CheckCallViaJS when a trap occurs. In that case, the trap callback is called instead of an exception being thrown, so if it isn't handled, a bogus result will be returned instead. Bug: v8:8965 Change-Id: I560e89f353756df23c062fb8c9484d9971c19253 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539078Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#60473}
-
- 21 Mar, 2019 2 commits
-
-
Ben Smith authored
Most of the mjsunit/wasm/table-copy.js tests have been ported to cctests, so they can be tested with all execution tiers. Bug: v8:8965 Change-Id: I448719be30a4b2bddb9e2cffb4c74d3134db2f50 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529548 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60396}
-
Ben Smith authored
When running wasm tests, the interpreter previously used a static collection of function indexes stored in WasmTable to perform call_indirect calls internal to that module. This has the wrong behavior if the table is changed (via WasmTableObject::Set, `table.copy`, or `table.init`). This CL changes the cctests to always generate an intepreter entry for all functions, and stores those entries in the dispatch table. This allows us to use the same execution path as for non-testing code. The interpreter entry compiler needed to be changed to support multi-value returns too, since a 64-bit integer return value may be lowered to two 32-bit integer returns. Bug: v8:9016 Change-Id: I277df21ffde5c2eee0b691fcc9bab2b1a43eeffc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531137 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60380}
-