- 23 Feb, 2021 1 commit
-
-
Thibaud Michaud authored
The flag should not be set after an exception is thrown in a runtime function. The unwinder still runs after the destructor, and should take care of setting the flag depending on the catching frame. R=ahaas@chromium.org,jkummerow@chromium.org Bug: chromium:1180690 Change-Id: I0013c90f759a5145309f6e08d61ed36aeecbac63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713103Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72972}
-
- 18 Feb, 2021 1 commit
-
-
Clemens Backes authored
... for creating a FixedArray. Calling builtins is generally cheaper than calling into the runtime, and this also saves us a int->Smi conversion. The builtin still has the "Wasm" prefix, since it's only used in wasm for now. R=thibaudm@chromium.org Bug: v8:11453 Change-Id: I0c5b6b71ae1b07608f51e685014a0e8dc0034111 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2698674Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72839}
-
- 17 Feb, 2021 1 commit
-
-
Clemens Backes authored
We made two runtime calls: The first one allocated the exception object containing a FixedArray of exception values, the second call did the actual throw. Inbetween the code was filling the values array. This CL refactors this to only allocate the FixedArray initially, fill it, and then allocate the actual exception and throw it both from the second runtime function. This avoids a WasmGetOwnProperty call to find the values array. R=thibaudm@chromium.org Bug: v8:11453 Change-Id: I091aaa5c7bfb2b5579fc92c953adf582e6cc175a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697359 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72811}
-
- 12 Feb, 2021 3 commits
-
-
Clemens Backes authored
This CL adds support for instrumentation breakpoints in wasm. The request for "break on entry" is set on the script, and we need to keep it stored there because there might not be any instances of that wasm module yet. Once instances get created, the flag value is transferred to all instances. The flag stored there is then checked in the function prologue in Liftoff debugging code. This ensures that we will stop at the first valid break position in any function within that module. Hitting that instrumentation breakpoint will then clear the flag from the script and from all other live instances (in the same isolate). A first basic test is contained in this CL. More tests will be added later. R=thibaudm@chromium.org, bmeurer@chromium.org Bug: chromium:1151211 Change-Id: I5442d4044934988269becececc03699b850d51d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2690588Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72701}
-
Benedikt Meurer authored
Following up on https://crrev.com/c/2689185, this CL significantly simplifies the whole implementation of the stack trace capturing. Before this CL, capturing any stack trace (for the purpose of the API or Error.stack) would roughly work like this: 1. The CaptureStackTrace() function uses the StackFrameIterator to walk the system stack. For each native frame it uses the FrameSummary abstraction to get all (including potentially inlined) frames. For each of those it appends a record consisting of six elements to a FrameArray (this holds pointers to the actual closures and receivers). 2. Afterwards the FrameArray is shrinked to the required size, and a new FixedArray is allocated, and initialized with new StackTraceFrame objects where each holds a reference to the FrameArray, the index of the frame, and an initially uninitialized StackFrameInfo reference. This new FixedArray is then returned from CaptureStackTrace() and either stored on a message object or provided to the API as v8::StackTrace. The new approach removes a lot of the machinery in between and directly creates a FixedArray of StackFrameInfo objects in CaptureStackTrace(). These StackFrameInfo objects are directly exposed as v8::StackFrame on the public API, and they hold the six fields that were previously stored flat in the FrameArray. This not only avoids a lot of copying around of data and creation of temporary objects and handles, but most importantly unifies and simplifies the stack frame function inside StackFrameInfo, so you no longer need to wonder which function / object might be responsible for a certain API. There's still a lot of room for improvement. In particular we currently don't cache the source position for a given StackFrameInfo (or globally), but rather recompute it every time. This is still very fast, significantly faster than the previous approach. There are some notable (potentially user visible) changes: - The CallSite#GetPosition() method now consistently returns the Wasm module relative bytecode offset for all Wasm frames (previously it'd return the function relative bytecode offset for non-asm.js Wasm frames). - The column and line numbers returned from StackFrameInfo methods are consistently 1-based now, instead of sometimes being 0-based (Wasm) and sometimes being 1-based (JS and asm.js Wasm). The only potentially noticable difference is that for CallSite#GetLineNumber() no longer returns 0 for Wasm frames, but that was wrong and useless anyways. - CallSite#GetThis() would sometimes return the_hole, another bug flushed out by this CL. The CL also contains some other not noteworthy drive-by-cleanups. Fixed: chromium:1057211 Bug: chromium:1077657, chromium:1069425, v8:8742 Bug: chromium:1127391, chromium:1098530, chromium:981541 Change-Id: Iff12f6838a4d99080db8dd96bccc14440affc5a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689183 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#72694}
-
Thibaud Michaud authored
Sample elapsed time between two consecutive exception events of the same type (throw/rethrow/catch). This will give us an idea of how frequently exception handling features are used at runtime during the origin trial. R=ahaas@chromium.org Bug: v8:8091 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: Ic3095eeeca08d2e079a507a492f10d2efb5ecfd2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2684367Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72685}
-
- 02 Feb, 2021 1 commit
-
-
Benedikt Meurer authored
Previously the WebAssembly debugger support completely ignored the condition on breakpoints. With this change, we check conditions (snippets of JavaScript) properly, which enables not only conditional breakpoints in the front-end, but also other features like 'Never pause here' (which simply sets `false` as condition) and log points. Fixed: chromium:1173007 Bug: chromium:1173006 Change-Id: I02c740d383378a1f4cc08134ad571bea08e9a905 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2666690Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72485}
-
- 29 Jan, 2021 1 commit
-
-
Clemens Backes authored
This adds a regression test for https://crrev.com/c/2652488. The test reduces the available code space such that it would trigger an OOM condition if code is not garbage-collected. In order to guarantee garbage-collection in all configurations, an explicit interrupt check is added to the WasmDebugBreak runtime function. R=thibaudm@chromium.org Bug: chromium:1168564 Change-Id: I8fce7aa5128c9e3c9a7e2d2e7397c394fec7de85 Cq-Include-Trybots: luci.v8.try:v8_linux64_asan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_mac64_asan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2652490 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72435}
-
- 08 Dec, 2020 3 commits
-
-
Clemens Backes authored
This is a reland of ab4d9717. The original CL did a std::move before the final use of the NativeModule. PS2 removes that. TBR=petermarshall@chromium.org, thibaudm@chromium.org Original change's description: > [wasm] Pass the script ID to code logging > > We didn't pass a script ID with the code creation events for profiling. > This made DevTools lose the connection to the wasm script, hence > jumping from the profiler entry to the source did not work. > > This CL changes the timing of code logging a bit such that the script is > always allocated before logging. In the queue of code to be logged we > then also store the script ID, and finally set it on the {CodeEntry} > object. > > R=thibaudm@chromium.org > > Bug: chromium:1125986 > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71654} Bug: chromium:1125986 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Change-Id: I2a7c5fe04fff726836b1279e3d05b1702a4efb76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578980Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71663}
-
Clemens Backes authored
This reverts commit ab4d9717. Reason for revert: UBSan issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/14184/overview Original change's description: > [wasm] Pass the script ID to code logging > > We didn't pass a script ID with the code creation events for profiling. > This made DevTools lose the connection to the wasm script, hence > jumping from the profiler entry to the source did not work. > > This CL changes the timing of code logging a bit such that the script is > always allocated before logging. In the queue of code to be logged we > then also store the script ID, and finally set it on the {CodeEntry} > object. > > R=thibaudm@chromium.org > > Bug: chromium:1125986 > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71654} TBR=petermarshall@chromium.org,clemensb@chromium.org,thibaudm@chromium.org Change-Id: I03c90c77b55e770797a6d66b1d778992a047e07a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1125986 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575070Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71660}
-
Clemens Backes authored
We didn't pass a script ID with the code creation events for profiling. This made DevTools lose the connection to the wasm script, hence jumping from the profiler entry to the source did not work. This CL changes the timing of code logging a bit such that the script is always allocated before logging. In the queue of code to be logged we then also store the script ID, and finally set it on the {CodeEntry} object. R=thibaudm@chromium.org Bug: chromium:1125986 Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#71654}
-
- 26 Nov, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Scopes in V8 are used to guarantee one or more properties during its lifetimes. If a scope is not named e.g MyClassScope(args) instead of MyClassScope scope(args) it will get created and automatically destroyed and therefore, being useless as a scope. This CL would produce a compiling warning when that happens to ward off this developer error. Follow-up to ccrev.com/2552415 in which it was introduced and implemented for Guard classes. Change-Id: Ifa0fb89cc3d9bdcdee0fd8150a2618af5ef45cbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2555001 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#71425}
-
- 18 Nov, 2020 1 commit
-
-
Andreas Haas authored
There is a flag in the WebAssembly trap handler that is set whenever WebAssembly code is entered, and that is reset when WebAssembly code is left. In runtime functions we have DCHECKs in place that check the value of this flag. This flag is only needed when trap handlers are enabled though. When trap handlers are disabled, the flag is not enabled and disabled consistently. DCHECKs should therefore only check the flag value when trap handlers are actually enabled. R=manoskouk@chromium.org CC=vkont@google.com Bug: v8:10982 Change-Id: I3325f6057ff8d9c39d029ef04c55792162d927f6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2545708Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#71261}
-
- 11 Nov, 2020 1 commit
-
-
Vicky Kontoura authored
This CL aims at avoiding compilation of the same js-to-wasm wrapper multiple times by iterating over all exported functions in the export table and replacing the wrapper for all functions that share the same signature with the function that tiered up. Bug: v8:10982 Change-Id: I721de2f48844349de8a5d12f512a74957c66a0e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2527082 Commit-Queue: Vicky Kontoura <vkont@google.com> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#71103}
-
- 06 Nov, 2020 1 commit
-
-
Vicky Kontoura authored
This CL addresses the behaviour of the tiering strategy for the case of the start function. The start function is currently called as an exported function, but never stored as one. This results in crashes if the start function tries to tier up (e.g. if the threshold for the tiering strategy is set to 1). Bug: v8:10982 Change-Id: Ic57d581022d84715621ce558988c6512c3200e30 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2517698Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Vicky Kontoura <vkont@google.com> Cr-Commit-Position: refs/heads/master@{#70999}
-
- 22 Oct, 2020 1 commit
-
-
Clemens Backes authored
The offset (also called "address") passed to the atomic builtins was 32-bit until now. With memory64, we will have to also accept 64-bit values there, or at least values within the allocatable memory range. This CL thus changes the builtins to receive uintptr values instead of uint32, and pass them on to the runtime functions as double (as before). The runtime then casts them back to uintptr_t instead of uint32_t. Liftoff is extended to zero-extend the uint32 value if needed. TurboFan already passed a machine-word sized integer before. Drive-by: Rename some "address" to "offset" to make the semantics more clear. R=ahaas@chromium.org CC=manoskouk@chromium.org Bug: v8:10949 Change-Id: I66968cc99a908775156c952da46d2f26219ffb58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2489685 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#70700}
-
- 21 Oct, 2020 1 commit
-
-
Manos Koukoutos authored
This trap now used for all runtime type errors thrown when interfacing with JS. Its name and message have been changed to reflect this. Additional change: Remove the trap from the list of traps used exclusively for RuntimeError (as opposed to TypeError) in wasm-module-builder.js. Change-Id: I517766837a60d94b562d4c0de922d52db786b635 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2488688Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#70682}
-
- 14 Oct, 2020 1 commit
-
-
Vicky Kontoura authored
This CL adds a basic tiering strategy for the js-to-wasm wrappers. When applicable, calls to exported WebAssembly functions are initially handled through the generic js-to-wasm wrapper. If these calls through the generic wrapper reach a constant threshold, the specific (per-signature) wrapper is compiled synchronously for the function and the generic wrapper is replaced. Bug: v8:10982 Change-Id: I65e706daffb5cb6e723ce2f7b785f7ecb7b2fa7b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461243 Commit-Queue: Vicky Kontoura <vkont@google.com> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#70503}
-
- 21 Sep, 2020 1 commit
-
-
Manos Koukoutos authored
Changes: - When checking if a table is a function table, check for subtyping to funcref instead of equality. - Add WasmModuleObject argument to GetFunctionTableEntry. - Implement WasmTableObject::Get/Set for all legal table types. - Factor out SetFunctionTableEntry from WasmTableObject::Set. - Write unittests and JS tests. Bug: v8:9495 Change-Id: I4f0c7a7013f17c561afb3039c5e0811634a4d313 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2416387 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#70032}
-
- 18 Sep, 2020 2 commits
-
-
Manos Koukoutos authored
Changes: - Rename IsSignatureEqual -> MatchesSignature for consistency - Add WasmInstanceObject field to WasmTableObject. - Improve some error messages related to tables in function-body-decoder-impl.h. - Introduce WasmTable::IsValidTableType. Use it wherever appropriate. - Overload equality operators in HeapType to work with HeapType::Representation. - Rename DynamicTypeCheckRef -> TypecheckJSObject. - Handle WasmCapiFunctions in TypecheckJSObject. - Use TypecheckJSObject in WasmTableObject::IsValidElement. - A few more minor improvements. Bug: v8:9495 Change-Id: I2867dd3486d7c31717ac26b87a50e15cf2b898be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2416491 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#70001}
-
Manos Koukoutos authored
Changes: - Extend IsJSCompatibleSignature to include typed functions. - Generalize WasmIsValidFuncRefValue to WasmIsValidRefValue, utilize DynamicTypeCheckRef. Use it in FromJS. - Extend DynamicTypeCheckRef to eqRef type and WasmJSFunction references. - Update call-ref.js test. Change-Id: I71166ab8c1e716c21e79776c561e77b443add1da Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2412527Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#69981}
-
- 11 Aug, 2020 1 commit
-
-
Kim-Anh Tran authored
This change adds support for skipping locations that are in a skipList on step over. This feature is useful for when we are debugging C++ applications that have DWARF information we only want to stop on every breakable location in C++, not non every breakable location on wasm level. Bug: chromium:1105765 Change-Id: Ie835b011a00cf31e0c5b2df1ac96ebd89f53d23a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339458Reviewed-by:
Eric Leese <leese@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#69329}
-
- 28 Jul, 2020 1 commit
-
-
evih authored
This generic wrapper builtin is currently used only when the wasm function has no parameters and no return value. Added a new V8 flag to use this generic wrapper. Also added a JS test function for this generic wrapper. Bug: v8:10701 Change-Id: Id8cd1771f26922927363b715d8a6ffd384a143ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2307240Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Eva Herencsárová <evih@google.com> Cr-Commit-Position: refs/heads/master@{#69097}
-
- 24 Jul, 2020 1 commit
-
-
Clemens Backes authored
Out of the four listed reasons, two are obsolete now, since stepping does not modify the code table any more. The first reason also cannot happen any more, since removing a breakpoint will also patch the stack of the isolate, and even if not, removing a breakpoint which is not set will have no effect (not even a stack rewriting). The same applies for the last listed reason. So overall, this code is not needed any more, since it has no effect. R=thibaudm@chromium.org Bug: v8:10611 Change-Id: I773ac2515b66e8bf66cb035c315db552024485c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316299Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69041}
-
- 21 Jul, 2020 1 commit
-
-
Arnaud Robin authored
On desktop systems, we use a very basic tiering strategy: Everything is initially compiled with Liftoff, and once that is done, the module can start being used. Concurrently to the execution, we re-compile all code with TurboFan, and hot-swap each function once TurboFan finishes. We should start using a more dynamic strategy where each function is tiered-up when judged necessary. This change will then tier-up each liftoff function once it has been called 5 times. I then added a counter in the native module, that is updated directly from Liftoff code, and a runtime call is then made when the counter reaches the goal. R=clemensb@chromium.org CC=thibaudm@chromium.org Bug: v8:10728 Change-Id: I8dc2b02fdff8d97781bb1cf496886594b3d7f644 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2306803 Commit-Queue: Arnaud Robin <arobin@google.com> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68971}
-
- 15 Jul, 2020 1 commit
-
-
Jakob Kummerow authored
In addition to decoding them, we also have to evaluate the initializer instructions when instantiating a module. Drive-by fix: use "big-endian" encoding (prefix comes first) when emitting initializers in the module builder. Bug: v8:7748 Change-Id: Idfa0f5db298a8f6c6100fc09e1984e4a2e170e4a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2298004 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#68866}
-
- 09 Jul, 2020 1 commit
-
-
Jakob Kummerow authored
By introducing a globally known map for each generic type. These maps are never used to allocate objects, they only serve as sentinels for generic heap types. Bug: v8:7748 Change-Id: I950a8c712dc1510759a833fe9122b9e9a6222dc2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288860 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68755}
-
- 07 Jul, 2020 1 commit
-
-
Jakob Kummerow authored
When rtt.sub is called repeatedly with the same arguments, it should return the same result. This CL introduces a cache for previously created sub-RTTs to achieve that. Bug: v8:7748 Change-Id: Ie6c74eedf0df6f94cd973fdb0b6b6fc0130a9c41 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2275967 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68715}
-
- 29 Jun, 2020 1 commit
-
-
Jakob Kummerow authored
Relanding without changes, revert reason was fixed by: https://chromium-review.googlesource.com/c/v8/v8/+/2272564 Originally reviewed at: https://chromium-review.googlesource.com/c/v8/v8/+/2260566 Original description: RTTs are internally represented as Maps. To store supertype information, this patch introduces a WasmTypeInfo object, which is installed on Wasm objects' Maps and points at both the off-heap type information and the parent RTT. In this patch, rtt.sub always creates a fresh RTT. The canonicalization that the proposal requires will be implemented later. Bug: v8:7748 Change-Id: I7fd4986efa3153ac68037ec418ea617f3f7636e8 Tbr: ulan@chromium.org Tbr: tebbi@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2273123Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68581}
-
- 26 Jun, 2020 2 commits
-
-
Shu-yu Guo authored
This reverts commit 04ce88ea. Reason for revert: TSAN failure: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32135 Original change's description: > [wasm-gc] Implement rtt.sub > > RTTs are internally represented as Maps. To store supertype information, > this patch introduces a WasmTypeInfo object, which is installed on Wasm > objects' Maps and points at both the off-heap type information and the > parent RTT. > In this patch, rtt.sub always creates a fresh RTT. The canonicalization > that the proposal requires will be implemented later. > > Bug: v8:7748 > Change-Id: I8286dd11f520966155cd95c2bd844ec34fccd131 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260566 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68564} TBR=ulan@chromium.org,jkummerow@chromium.org,tebbi@chromium.org Change-Id: I311732e1ced4de7a58b87d4a9b6056e0d62aa986 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7748 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2270734Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#68567}
-
Jakob Kummerow authored
RTTs are internally represented as Maps. To store supertype information, this patch introduces a WasmTypeInfo object, which is installed on Wasm objects' Maps and points at both the off-heap type information and the parent RTT. In this patch, rtt.sub always creates a fresh RTT. The canonicalization that the proposal requires will be implemented later. Bug: v8:7748 Change-Id: I8286dd11f520966155cd95c2bd844ec34fccd131 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260566 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68564}
-
- 24 Jun, 2020 1 commit
-
-
Maya Lekova authored
GCMole now comes with the long forgotten use-after-free detection enabled by default. The CL also improves error logging when test expectations mismatch with the actual output and updates the hash of GCMole to be used with the newly built version with enabled UAF detection. The CL also contains an ignore for isolate.cc due to inability to fix a warning there and fixes a couple of UAF warnings. Bug: v8:9680 Change-Id: I7a009ffd5f67b1b5437567691ca4235ea873de70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2257236 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#68505}
-
- 22 Jun, 2020 1 commit
-
-
Deepti Gandluri authored
Adjust atomics.wait, atomics.notify semantics for when they are used with non-shared Wasm memory to mirror the spec change introduced in: https://github.com/WebAssembly/threads/pull/147. This does not need to be gated by the flag here, as this will only decode if the flag is enabled. Bug: v8:9921 Change-Id: I7f2e018fed6bd131ad4c386def1e838626c28a4d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2256863Reviewed-by:
Ben Smith <binji@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#68468}
-
- 28 May, 2020 1 commit
-
-
Clemens Backes authored
Instead of keeping a single {stepping_frame_} per native module, we now keep one frame id per isolate. Hence, each isolate can step through a different frame, independent of other isolates. The on-stack-replacement of the stepping frame already works on a per-isolate basis, since we only replace the return address of a single frame, part of the isolate that requested stepping. The new test (which also executes in a variant with two concurrent isolates) revealed some more data races to fix. R=thibaudm@chromium.org 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: I0bb013737162bd09b9f4be9c08990bca7bf736ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2214838Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68045}
-
- 19 May, 2020 1 commit
-
-
Bill Budge authored
Bug: v8:9891 Change-Id: I9fda15122fc4f24e237af6bfc00eb529ae37cb01 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2177512 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#67901}
-
- 11 May, 2020 1 commit
-
-
Clemens Backes authored
Also, rename the WASM_COMPILED frame type to just WASM. R=jkummerow@chromium.org Bug: v8:10389 Change-Id: I71f16f41a69f8b0295ba34bd7d7fad71729546f2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187613 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#67698}
-
- 06 May, 2020 1 commit
-
-
Jakob Kummerow authored
and avoid runtime calls for struct allocation. We can load the map from the instance and do the allocation in a CSA builtin. Bug: v8:7748 Change-Id: I76dfcb6c28800d69046b3d7381d3b8ba774fbf09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2169099 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#67617}
-
- 05 May, 2020 1 commit
-
-
Clemens Backes authored
This removes the interpreter entry stubs, which are used to redirect specific wasm functions to the interpreter. It is only needed when mixing JS code with interpreted Wasm code, otherwise the test functions just call the interpreter directly. Thus a lot of tests that contain such interaction between JS and Wasm need to be restricted to execute in Liftoff and TurboFan only. After this CL, the WASM_INTERPRETER_ENTRY frame type and the corresponding WasmInterpreterEntryFrame are dead, and will be removed in a follow-up CL. R=thibaudm@chromium.org Bug: v8:10389 Change-Id: I8e50d350dbc2afcc1cddaeb98baf23711117af2d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172962 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67559}
-
- 04 May, 2020 1 commit
-
-
Manos Koukoutos authored
Motivation: Improve code efficiency by replacing runtime calls with manually written turbofan code where possible. Changes: - Remove the runtime functions `Runtime_WasmExceptionGetTag` and `Runtime_WasmExceptionGetValues` and replace them with turbofan code. - Introduce the builtin function `GetOwnProperty`. - Change `wasm-compiler.h` and `wasm-compiler.cc` to accomodate the new changes. - Introduce three new macros in `wasm-compiler.cc`. - Use those macros in two additional places to remove code duplication. Change-Id: I4a32f9e5f7ee55dc50cd03378a68897888ece5c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2162905Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#67530}
-
- 29 Apr, 2020 1 commit
-
-
Manos Koukoutos authored
Motivation: Improve code efficiency by replacing runtime calls with manually written turbofan code where possible. Changes: - Remove the runtime functions `Runtime_WasmNewMultiReturnFixedArray` and `Runtime_WasmNewMultiReturnJSArray` and replace them with turbofan code. - Introduce the builtin function `WasmAllocateJSArray`. R=clemensb@chromium.org R=ecmziegler@chromium.org R=jkummerow@chromium.org Change-Id: Idc0db39286c4242392c0422919bbc8fd7bedf2af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2143816Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#67472}
-