- 28 Jul, 2020 1 commit
-
-
Clemens Backes authored
If multiple isolates were involved, we did not always hit the breakpoint reliably in all isolates. This CL fixes this flake this via two changes: 1. Remove breakpoint info when tiering up. If we keep the breakpoint information, a second isolate that later sets the same breakpoint will see that the breakpoint already exists, and will not set it again, even though the code containing the breakpoint has been replaced at that point. This fixes a flake in the debug/wasm/breakpoints test. 2. Don't overwrite code with breakpoints by default "tiered down" code. This is achieved by introducing another state in the {ForDebugging} enum which marks that code contains breakpoints. Otherwise it could happen that two isolates start tiering down (both recompiling missing functions in Liftoff), one isolate finishes and immediately sets a breakpoint, then the other isolates finishes and overwrites the code with breakpoints by the usual {kForDebugging} code. Setting breakpoints is synchronized already, so overwriting breakpoint code with other breakpoint code is always safe. R=thibaudm@chromium.org Bug: v8:10611, v8:10359 Change-Id: I171d86b110a54f9eb5e4c3fa35108638904212e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316080 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69088}
-
- 21 Jul, 2020 2 commits
-
-
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}
-
Manos Koukoutos authored
Drive-by: Improve comment, use << operator where possible Change-Id: I5d2bff57a3f19a0fbb746136a897bf50e1173775 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2308337Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#68966}
-
- 29 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
Drive-by: Fix ref.is_null calling is_reference_type to typecheck its argument (which would also allow rtts). Bug: v8:7748 Change-Id: I2ad01d0f70ac15d37ac4cc344bd0280a7ca08073 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264094 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#68572}
-
- 24 Jun, 2020 2 commits
-
-
Clemens Backes authored
This allows the compiler to eliminate more unneeded branches. Since all functions just do a lookup in a static table (either directly, or via compiling a switch to such a lookup), they are also good candidates for inlining, which is made possible by this change. One DCHECK is removed instead of pulling in the inl header, which would require more refactoring since the check is in a non-inl header. R=thibaudm@chromium.org TBR=jkummerow@chromium.org Bug: v8:10576 Change-Id: If0fd25fd62c5f30b896fc67a5458a5ae475a6351 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2259944 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#68508}
-
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}
-
- 23 Jun, 2020 1 commit
-
-
Clemens Backes authored
The interpreter is not used in production code any more, hence move it from src/wasm to test/common/wasm. It's still used in unit tests, cctests, and in fuzzers. Because of this move, a few more methods had to be exported via V8_EXPORT_PRIVATE. R=ahaas@chromium.org, yangguo@chromium.org Bug: v8:10389 Change-Id: If626b940a721146c596fd7df4faaea633e710272 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2257226 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#68480}
-
- 18 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
Motivation: Changes to the typed function references and gc proposals solidified the notion of heap type, clarified nullable vs. non-nullable reference types, and introduced rtts, which contain an integer depth field in addition to a heap type. This required us to overhaul our ValueType representation, which results in extensive changes. To keep this CL "small", we do not try to implement the binary encoding as described in the proposals, but rather devise a simpler one of our own (see below). Also, we do not try to implement additional functionality for the new types. Changes: - Introduce HeapType. Move heap types from ValueType to HeapType. - Introduce Nullability for reference types. - Rework ValueType helper methods. - Introduce rtts in ValueType with an integer depth field. Include depth in the ValueType encoding. - Make the constructor of ValueType private, instead expose static functions which explicitly state what they create. - Change every switch statement on ValueType::Kind. Sometimes, we need nested switches. - Introduce temporary constants in ValueTypeCode for nullable types, use them for decoding. - In WasmGlobalObject, split 'flags' into 'raw_type' and 'is_mutable'. - Change IsSubtypeOfRef to IsSubtypeOfHeap and implement changes in subtyping. - kWasmFuncRef initializers are now non-nullable. Initializers are only required to be subtypes of the declared global type. - Change tests and fuzzers as needed. Bug: v8:7748 Change-Id: If41f783bd4128443b07e94188cea7dd53ab0bfa5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2247657 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68408}
-
- 17 Jun, 2020 1 commit
-
-
Kim-Anh Tran authored
This fixes a check in the code that recompiles Liftoff if breakpoints were removed on isolate removal. Change-Id: I969b1b027a393f48e92ef4df37f6e672d16866cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2247648Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#68386}
-
- 15 Jun, 2020 1 commit
-
-
Clemens Backes authored
We currently hit a nullptr access when trying to update the detected feature set. Instead of adding a check for nullptr there (which would be unnecessary overhead in production code), we just pass a pointer when compiling for debugging. R=thibaudm@chromium.org Bug: chromium:1092408 Change-Id: I7804edc3f67237bbf28d0ed2f5c58339d3a0f8f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238080Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68335}
-
- 09 Jun, 2020 4 commits
-
-
Clemens Backes authored
The interpreter is only used for testing, and is now instantiated and invoked directly instead of via the {WasmDebugInfo}, holding the {InterpreterHandle}. This CL removes both classes. R=ahaas@chromium.org Bug: v8:10389 Change-Id: Iede3feea413decae1edc28146b871a819e204768 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237132Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68271}
-
Manos Koukoutos authored
The reference types wasm proposal dropped all subtyping. Subsequently, the 'anyref' type was renamed to externref. This changes all references of the *type* anyref to externref. Additionally, the flag that permits this extension is renamed to "reftypes" to mirror the proposal name. Bug: v8:7748 Change-Id: Icf323f13b9660fd10540e65125af053fca3a03f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232941 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Kim-Anh Tran <kimanh@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#68270}
-
Clemens Backes authored
Avoid going through the {WasmDebugInfo}, which existed for debugging in the interpreter in production. Instead, tests now instantiate the interpreter directly. This will unblock the removal of the whole {WasmDebugInfo}, and finally moving the interpreter to the test directory. R=ahaas@chromium.org Bug: v8:10389 Change-Id: I8ae76a1d5bff716c129781b11a15369a80b13603 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235543Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68258}
-
Clemens Backes authored
The reference stack was set by the scope, and reset when leaving the scope, in order to avoid leaking objects via cycles in the reference tree, involving global handles which are considered strong roots. Since the interpreter cannot call out to JS any more, we cannot create such cycles any more. Hence, the ReferenceStackScope is removed, and the FixedArray for the reference stack is allocated as a global handle instead. This will unblock removing the WasmDebugInfo object, which was used by the ReferenceStackScope before this CL. R=ahaas@chromium.org Bug: v8:10389 Change-Id: I2e3c6a03750846679eecd9e6a07042db962aad9c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235542Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68257}
-
- 06 Jun, 2020 1 commit
-
-
Benedikt Meurer authored
This aligns the wasm locals with how JavaScript locals are displayed in the DevTools scope view. Before: https://i.imgur.com/y0urpbL.png After: https://i.imgur.com/368KDay.png Bug: chromium:1043034 Change-Id: I5811d18101ec68c320fd223e041e12989c66e721 Doc: https://bit.ly/wasm-fallback-dx#bookmark=id.1uhy72x83he7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232550 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#68222}
-
- 05 Jun, 2020 2 commits
-
-
Clemens Backes authored
If multiple workers are sharing the same module, the DevTools frontend will set the same breakpoints in all of them, but one after another. This CL tries to avoid repeated recompilation of that function in most cases. Only if we need special source positions for stack rewriting, we need to compile a special version. R=thibaudm@chromium.org Bug: v8:10359 Change-Id: I06114d6feb2030b75dcbde91c62b822f1807ad6e Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2231339 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#68213}
-
Clemens Backes authored
The wasm interpreter was always single-threaded, and there are no plans to change this. Still, there was a concept of threads, but with the hard-coded constraint that there is always exactly one of them. In order to clean up the code, and as a preparation to remove more unneeded functionality before moving the interpreter over to the test directory, this CL removes the concept of threads and merges the {ThreadImpl} class into {WasmInterpreterInternals}. Drive-by: Remove the dead {GetFrameCount} method. R=ahaas@chromium.org Bug: v8:10389 Change-Id: If65cdd21b34ce8debf8ba0f24dbeacec15e0a1d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2231354Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68204}
-
- 03 Jun, 2020 1 commit
-
-
Kim-Anh Tran authored
Bug: chromium:1081735 Change-Id: Iab58b303ec718a15653ba80fefbb873ef93df003 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218284 Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68153}
-
- 02 Jun, 2020 2 commits
-
-
Clemens Backes authored
Since the interpreter cannot call out to JS any more, there cannot be more than one activation at a time. Hence remove the concept of activations. R=ahaas@chromium.org Bug: v8:10389 Change-Id: Ifda5624e192464a1aed2943787bc6860d1917719 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2219942Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68118}
-
Clemens Backes authored
This adds support for multiple isolates sharing the same module but setting different breakpoints. This is simulated by having a debugger test that runs in the "--isolates" variant, i.e. two isolates running the same test at the same time. Both isolates will set and remove breakpoints. The DebugInfo will keep a separate list of breakpoints per isolate, and when recompiling a function for debugging it will respect all breakpoints in all isolates. In order to ensure consistency if multiple isolates are setting or removing breakpoints simultaneously, we go back to a more coarse-grained locking scheme, where the DebugInfo lock is held while re-compiling Liftoff functions. While recompilation will install the code in the module-global code table and jump table (and hence all isolates will use it for future calls), only the stack of the requesting isolate is rewritten to immediately use new code. This is OK, because other isolates are not interested in the new breakpoint(s) anyway. On {SetBreakpoint}, we always need to rewrite the stack of the requesting isolate though, even if the breakpoint was set before by another isolate. Drive-by: Some fixes in SharedFunctionInfo in order to support setting breakpoints via the Debug mirror. R=thibaudm@chromium.org Bug: v8:10359 Change-Id: If659afb273260fc5e8124b4b617fb4322de473c7 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218059Reviewed-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@{#68096}
-
- 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}
-
- 26 May, 2020 3 commits
-
-
Clemens Backes authored
The Isolate is only used to access the wasm engine, and the accounting allocating. The latter is also linked directly from the wasm engine, and the engine is linked from the native module, to which the DebugInfoImpl already has access. Hence, this CL removes the redundant Isolate pointers, and just accesses the engine and the allocator via the NativeModule. R=thibaudm@chromium.org Change-Id: Ib51cee2d166443a34e22fa02e8ad1549328aaa7f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2214827Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67966}
-
Clemens Backes authored
The interpreter is still used for testing, but frame inspection is not wired any more. Hence this CL removes it. R=thibaudm@chromium.org Bug: v8:10389 Change-Id: If93928dd3996a19c1251a93d843034574d4c43ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215165Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67964}
-
Kim-Anh Tran authored
This adds the wasm instance to the module scope. The instance contains the exported entities that can now be inspected. Bug: chromium:1043034 Change-Id: I9236ac9c126f3bc4b1e056990fe34956bbe8ed6b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2213433 Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#67961}
-
- 19 May, 2020 1 commit
-
-
Ng Zhi An authored
Convert wasm-value into internal::WasmValue, then to debug::WasmValue. This is then copied into a CDP protocol object via a new class, WasmValueMirror. Bug: v8:10347 Change-Id: I5778d2cc5701caf82e4a97ac329303e510695b74 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2151130Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Kim-Anh Tran <kimanh@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#67908}
-
- 18 May, 2020 2 commits
-
-
Jakob Kummerow authored
When the intention is to handle every case, *and* when we can be reasonably sure that no invalid enum values will occur (e.g. from reading untrusted data), then we shouldn't have a "default:" case in a switch statement so that the compiler will warn us when a case is missing. Bug: v8:10506 Change-Id: Iefdebd54802611e7ec3479afa3c4e6506f97a095 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204284 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#67854}
-
Clemens Backes authored
For debugging (either with --print-wasm-code, or inspecting the current code object in a debugger) it's helpful to also see the debug side table, if available. This CL adds print support for that, and uses it when printing wasm code, and after generating a new debug side table. R=thibaudm@chromium.org Bug: v8:10359 Change-Id: I700b6eacb80f015212115e91b94c513e88c04288 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202902 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67848}
-
- 13 May, 2020 1 commit
-
-
Clemens Backes authored
Frames that have not been compiled by Liftoff for debugging are uninspectable. Instead of reporting an empty local scope and stack scope in this case, just don't report these two scopes at all. This also fixes a case missed in https://crrev.com/c/2196349, where we would still try to generate the stack scope for non-debugging code. Drive-by: Use {WasmFrame} instead of {StandardFrame} in the {DebugWasmScopeIterator}, and use the {FrameInspectionScope} consistently. R=thibaudm@chromium.org, bmeurer@chromium.org CC=kimanh@chromium.org Bug: v8:10359, chromium:1071757, chromium:1079328, chromium:1072839 Change-Id: I3a3731a0bd9f582f94458500252922b4146e394f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198982Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67777}
-
- 12 May, 2020 1 commit
-
-
Clemens Backes authored
Liftoff code generated for debugging has an extended function prologue which checks the "hook on function entry" flag on the isolate. Because of this, code positions between standard Liftoff code and Liftoff code for debugging do not match up. When (lazily) generating debug side tables, we always generate them for debugging-flavored Liftoff code. The issue that this CL fixes happened when we tried to inspect non-debug Liftoff code, and lazily generated the debug side table for that code. As noted above, source positions would not match up in that case, and we get DCHECK failures (or crashes in release builds) when inspecting the code. This issue was uncovered as part of the multi-threaded debugging effort, but because of the similarity in the stack trace, it might also fix the other issues linked below. We will get test coverage as soon as we add multi-threaded debugging tests (which are in development, but are still hitting other issues). R=thibaudm@chromium.org Bug: v8:10359, chromium:1071757, chromium:1079328, chromium:1072839 Change-Id: Ic0c14e635dc2a0b84ac86ceb6650288202dafedc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196349 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67756}
-
- 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}
-
- 07 May, 2020 1 commit
-
-
Clemens Backes authored
Currently WebAssembly breakpoint information survive disabling and re-enabling the debugger. This is different from JavaScript, where they are all removed. The frontend is expected to re-set the breakpoint then. Thus this CL remembers all wasm scripts where breakpoints have been set in the Debug object, and clears them all when the debugger gets disabled. R=bmeurer@chromium.org Bug: v8:10403 Change-Id: I5f8a8f3123727c954921920897ee7bf3b73f0ae8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2184969 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#67639}
-
- 06 May, 2020 1 commit
-
-
Clemens Backes authored
Interpreter entry compilation was removed in https://crrev.com/c/2172962. This CL removes the {WasmInterpreterEntryFrame} and the corresponding {WASM_INTERPRETER_ENTRY} code kind. Some follow-up cleanups are left as TODOs. R=jkummerow@chromium.org,bmeurer@chromium.org Bug: v8:10389 Change-Id: I1a43eba1ac1a751e05990c688088d99fc901231f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2182456Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67607}
-
- 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}
-
- 28 Apr, 2020 3 commits
-
-
Clemens Backes authored
Redirection to the interpreter is removed from mjsunit tests. Hence the runtime function will always return 0. This CL removes the runtime function and the respective method from the interpreter. R=thibaudm@chromium.org Bug: v8:10389 Change-Id: Ia17bebf3992f42a17a9c1b385ecdc2f2e3061b65 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2164794 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67447}
-
Clemens Backes authored
This removes the {RedirectToWasmInterpreter} runtime function and the respective method from {WasmDebugInfo}. Some tests test specifically the interaction between compiled code and the interpreter. They are irrelevant now and are deleted. R=thibaudm@chromium.org Bug: v8:10389 Change-Id: I38330fcb523f7c65968fdf03abc60af3392bdcc8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2164793 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67427}
-
Clemens Backes authored
This CL removes all debugging capabilities from the API provided by WasmDebugInfo: - setting and removing breakpoints - stepping - stack inspection The WasmDebugInfo is still kept, since it's used from tests to instantiate the interpreter. R=thibaudm@chromium.org, bmeurer@chromium.org Bug: v8:10389 Change-Id: I297bfc8df2104dae8b9f9f9b13078026c47698da Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2164791Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67418}
-
- 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
-
-
Clemens Backes authored
The flag is on by default, and tests already rely on the new behaviour. This CL removes the flag and immediately affected code. More code will be removed component by component in follow-up CLs. Drive-by: Inline {RemoveBreakpointFromInfo} into {ClearBreakPoint}, which only redirected to that method after this CL. R=thibaudm@chromium.org,bmeurer@chromium.org Bug: v8:10389, v8:10351 Change-Id: I3b18e228dd633cfb25541ddd0f31699b1ceb1db0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154804 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67244}
-
- 17 Apr, 2020 2 commits
-
-
Clemens Backes authored
This adds another enum value in the {ForDebugging} enum for stepping code. By not adding the code to the code table and jump table, we will never execute this code via a wasm function call. The code will only be used for the one frame where we want to step through. This speeds up stepping over recursive calls enormously, since the recursive calls don't run into the flooded breakpoints any more. It also fixes issues with non-local control flow, i.e. catching a trap and reentering the same wasm function. R=thibaudm@chromium.org Bug: v8:10235 Change-Id: Idb304dd465418f842016a20c21d68989bb78cf1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2153205 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67205}
-
Clemens Backes authored
Stepping only happens in one frame at a time, so we don't need to rewrite the whole stack. This allows us to remove the {flooded_function_index_}, since no function is globally flooded any more. A follow-up CL will ensure that the code will also not be installed in the code table and jump table any more, to fix issues with non-local control flow (i.e. catching a trap and reentering wasm), where we could currently accidentally execute flooded code. It will also speed up stepping over recursive calls enormously, since the recursive calls don't run into the flooded breakpoints any more. R=thibaudm@chromium.org Bug: v8:10235 Change-Id: Ifae5e35c3242c95e1fe1a89a169ce874b818a288 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2152646Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67202}
-