- 19 Jan, 2021 1 commit
-
-
Clemens Backes authored
The test was explicitly tiering up or down a module, without respecting other isolates. Thus it was failing in multi-isolate mode. This CL removes two runtime functions which do not make sense in a multi-isolate setting (and were only used in this one test), and replaces them with runtime functions that mimic what enabling/disabling the debugger domain does: As long as there is at least one isolate which needs modules to be tiered down, we keep them tiered down. R=thibaudm@chromium.org Bug: v8:10359, v8:10099 Change-Id: Ia85f4ea29ba6a6bb54aca54a48fadd351121d3eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637231Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72164}
-
- 17 Dec, 2020 1 commit
-
-
Nico Hartmann authored
This CL changes SharedFunctionInfo::GetBytecodeArray to a function template, which is specialized for Isolate and LocalIsolate arguments. This allows main thread only uses to avoid taking a lock. Bug: v8:7790, chromium:1154603 Change-Id: I3462c4e36b66073e09393c01c765dd8a018a98f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595307 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#71833}
-
- 16 Dec, 2020 1 commit
-
-
Sathya Gunasekaran authored
Instead of looking up the specific maps in every native context, just check against the instance type. Bug: v8:11256 Change-Id: Ib50d599c014c95b03ba3260014dfcbd9ec82982c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593337Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#71802}
-
- 10 Dec, 2020 1 commit
-
-
Clemens Backes authored
So far we reported the script ID, but DevTools ignores that and uses the source url instead. That url was just set to "wasm ", which the frontend couldn't make any sense of. This CL fixes this by passing the source URL to the code create event, and also setting the position of the code inside the script (i.e. wasm module). R=thibaudm@chromium.org, petermarshall@chromium.org Bug: chromium:1125986 Change-Id: Ic41dcd2768c60fd6748468d3a89fc4ffccb35932 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581543 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#71695}
-
- 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}
-
- 02 Dec, 2020 1 commit
-
-
Ross McIlroy authored
Unifies various operators for dynamic map checks with the naming scheme of DynamicCheckMaps (to be similar to CheckMaps. BUG=v8:10582 Change-Id: I8ac842f55fe31cdc7b84968d077017a86ddf4442 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567952 Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71559}
-
- 30 Nov, 2020 1 commit
-
-
Andreas Haas authored
Safepoints encode which slots in a stack frame store references when a function is called. Safepoints for normal function calls in Liftoff were already implemented before. With this CL, a safepoint for the runtime call in a stack check is emitted. R=thibaudm@chromium.org, clemensb@chromium.org Bug: v8:7581 Change-Id: Iacb8b15559502adb7622935edb0cfa7ca03d634e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563266 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71494}
-
- 28 Nov, 2020 1 commit
-
-
Camillo Bruni authored
Bug: v8:11195 Change-Id: I19211af9e440940f85351fb38920eb620c222213 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2555010Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#71465}
-
- 24 Nov, 2020 1 commit
-
-
Georg Neis authored
Apart from removing Min and Max (utils.h), this is mostly a renaming. In a few cases I had to add a cast. In a bunch of cases I had to use initializer lists to force call-by-value for static member constants because call-by-reference wouldn't compile (like in the previous CL). In a few places I used initializer lists in place of nested min/max operations. Bug: v8:11074 Change-Id: I53a5411be6334ff41e7a8517e6b87fb46f14d086 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2545523 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71380}
-
- 20 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Because of LocalHeap safepoints, our existing assert scopes don't necessarily maintain the same guarantees as desired. In particular, DisallowHeapAllocation no longer guarantees that objects don't move. This patch transitions DisallowHeapAllocation to DisallowGarbageCollection, to ensure that code using this scope is also protected against safepoints. Change-Id: I0411425884f6849982611205fb17bb072881c722 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540547 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71319}
-
- 18 Nov, 2020 1 commit
-
-
Jakob Gruber authored
... to --turbo-dynamic-map-checks. With the upcoming use in NCI code, this feature is no longer used exclusively by Turboprop. Bug: v8:8888 Change-Id: I61e01db086fd2e8566d2e2a09574be74b6e5a7bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2546693 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71263}
-
- 30 Oct, 2020 1 commit
-
-
Martin Bidlingmaier authored
This commit adds the 'l' (linear) RegExp flag (as in e.g. /asdf|123/l) that forces execution in linear time. These regexps are handled by the experimental engine. If the experimental engine cannot handle the pattern, an exception is thrown on creation of the regexp. The commit also adds a new global V8 flag and changes an existing one: * --enable-experimental-engine, which turns on recognition of the RegExp 'l' flag. Previously this flag also caused all supported regexps to be executed by the experimental engine; this is not the case anymore. * --default-to-experimental-regexp-engine takes over the previous semantics of --enable-experimental-regexp-engine: We execute all supported regexps with the experimental engine. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:10765 Change-Id: I5622a89b19404105e8be280d454e9fdd63c003b3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461244Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Martin Bidlingmaier <mbid@google.com> Cr-Commit-Position: refs/heads/master@{#70892}
-
- 28 Oct, 2020 2 commits
-
-
Daniel Vogelheim authored
https://github.com/tc39/proposal-dynamic-code-brand-checks An experimental implementation of the TC39 "Dynamic Code Brand Checks". This implementation sticks an API-only symbol on each "code kind" object, which is more flexible, but costs memory for each instance. Bug: chromium:1096017 Change-Id: Idfeca035c61204ca0cea8ec735fdfa40a49d85e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339618 Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#70842}
-
Mythri A authored
This is a reland of d7ece57e with a fix to failures on NumFuzz. Original change's description: > [turboprop] Add a slot for optimization marker in feedback vector > > Optimization marker and the optimized code used to share the same slot > in the feedback vector as they were mutually exclusive. With turboprop > we would want to mark the function for tier up to Turbofan while holding > the optimized code for Turboprop. So this cl uses the existing padding > field to hold the optimization marker instead. > > As a driveby, removes unused JSFunction::ClearOptimizedCodeSlot function > and fixes a minor bug in Runtime_GetOptimizationStatus. > > Bug: v8:9684 > Change-Id: I18c551a69648a0837d16c5453d023c0b295b1521 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467836 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70789} Bug: v8:9684 Change-Id: Ie6aa3c061a852bb047b5921e4e747d43505568e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502871 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#70834}
-
- 27 Oct, 2020 2 commits
-
-
Mythri Alle authored
This reverts commit d7ece57e. Reason for revert: failures on NumFuzz https://ci.chromium.org/p/v8/builders/ci/V8%20NumFuzz%20-%20debug/11818? Original change's description: > [turboprop] Add a slot for optimization marker in feedback vector > > Optimization marker and the optimized code used to share the same slot > in the feedback vector as they were mutually exclusive. With turboprop > we would want to mark the function for tier up to Turbofan while holding > the optimized code for Turboprop. So this cl uses the existing padding > field to hold the optimization marker instead. > > As a driveby, removes unused JSFunction::ClearOptimizedCodeSlot function > and fixes a minor bug in Runtime_GetOptimizationStatus. > > Bug: v8:9684 > Change-Id: I18c551a69648a0837d16c5453d023c0b295b1521 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467836 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70789} TBR=rmcilroy@chromium.org,mythria@chromium.org,jgruber@chromium.org Change-Id: Ia9894fef713a522b9c3d349bef4abcde3e1e1832 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9684 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502870Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#70803}
-
Mythri A authored
Optimization marker and the optimized code used to share the same slot in the feedback vector as they were mutually exclusive. With turboprop we would want to mark the function for tier up to Turbofan while holding the optimized code for Turboprop. So this cl uses the existing padding field to hold the optimization marker instead. As a driveby, removes unused JSFunction::ClearOptimizedCodeSlot function and fixes a minor bug in Runtime_GetOptimizationStatus. Bug: v8:9684 Change-Id: I18c551a69648a0837d16c5453d023c0b295b1521 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467836 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#70789}
-
- 26 Oct, 2020 1 commit
-
-
Leszek Swirski authored
Make the array elements in msunit/regress/regress-542823 larger, so that it takes fewer of them to force the joined string to go into large object space. Also, set the array's size dynamically based on the maximum non-large object size, rather than having a fixed magic "large enough" size, and verify that the resulting joined string is indeed in LO space. This reduces the runtime of this test under slow_path and gc-stress from minutes to seconds. Bug: v8:11060 Change-Id: I51d960b6a3e052199f50c1a6ba6fbce1b6d1ae38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498689 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#70762}
-
- 23 Oct, 2020 1 commit
-
-
Ross McIlroy authored
The dynamic map check builtin loads the feedback vector from the function's frame, therefore it doesn't work if we inline the function. We don't do inlining on TurboProp so this is fine, but it was possible to enable dynamic map checks on TurboFan which does. This change prevents that, and also makes the dynamic map checks flag specific to TurboProp and no longer an implication, which also allos it to be switched on the command line independenly of --turboprop. BUG=chromium:1141502,v8:9684 Change-Id: I365de461a6373335a45a7a154af7d4cf1c13dc2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2494928 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#70737}
-
- 15 Sep, 2020 2 commits
-
-
Jakob Gruber authored
This is a manual revert of 67cdacd9. Experiments have shown that inline headers do bring real benefits and we won't be proceeding with inline header removal. Bug: v8:10749 Change-Id: Icd3d0b3926d0b7a24edb19d9f177e9c8818abe09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2412174 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69915}
-
evih authored
Bug: v8:10701 Change-Id: Ibb4879accb0e991ddb4434d878bd8ef779b70034 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2412171Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Eva Herencsárová <evih@google.com> Cr-Commit-Position: refs/heads/master@{#69913}
-
- 14 Sep, 2020 1 commit
-
-
Andrew Comminos authored
Since the web-exposed profiler will require COOP/COEP, it is no longer necessary to perform isolation at the V8 level. Strip the unnecessary complexity and unreliability of context filtering accordingly. Bug: chromium:956688, v8:9881, v8:9860 Change-Id: I21a30d51f8daf7565ec95de8c265e9d3b9d10fad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2386144 Commit-Queue: Andrew Comminos <acomminos@fb.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#69894}
-
- 10 Sep, 2020 1 commit
-
-
Pierre Langlois authored
This reverts https://chromium-review.googlesource.com/c/v8/v8/+/2372545 in favour of different solution. In order to simulate filling up a page, it's not suitable to look at the limit() since there might be observers that have lowered it, so the page will not actually be full. Instead, let's relax the CHECK() in CreatePadding() to not look at the limit() but all available space. For instance, the test-heap/Regress978156 cctest uses FillCurrentPage() to fill the current page. However if there's an observer on the current page, it will not be filled entirely and the test will fail. This works because by default, when the new space is empty, the scavenger observer happens to be on the second page of the space. However if one changes the V8 page size to 512k, then it fails. This can be reproduced as such: # Make sure the scavenge trigger is on the first page. ./cctest test-heap/Regress978156 --scavenge-task-trigger=10 # Stress marking adds random observers to trigger incremental # marking. ./cctest test-heap/Regress978156 --stress-marking=100 This issue also causes crashes when using the %SimulateNewspaceFull() runtime test function, as found by fuzzing and you can find more details in the bug. Bug: v8:10808, v8:9906, chromium:1122848 Change-Id: Ie043ae0a1d3754d2423cb5d97f2b3e1ee860e5c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401427Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#69805}
-
- 31 Aug, 2020 1 commit
-
-
Martin Bidlingmaier authored
This CL adds support for disjunctions and some quantification in EXPERIMENTAL regexp patterns. It is implemented using a new bytecode format and an NFA-based breadth-first interpreter. R=jgruber@chromium.org Bug: v8:10765 Change-Id: Idd49a3bbc9a9fcc2be80d822c9d84a638e53e777 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2370634 Commit-Queue: Martin Bidlingmaier <mbid@google.com> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69621}
-
- 25 Aug, 2020 1 commit
-
-
Pierre Langlois authored
The cctests need to simulate full pages, however the calculation of the remainging available space is wrong causing an assertion when we change the V8 page size to 512K: $ cctest test-array-buffer-tracker/ArrayBuffer_PagePromotion # # Fatal error in ../../test/cctest/heap/heap-utils.cc, line 94 # Check failed: padding_size <= overall_free_memory || overall_free_memory == 0. The reason is: - On startup, we register a scavenger observer on the new space. The observer is set to trigger when the new space capacity is at 80% by default. - On linux, the initial capacity of the new space is 512K, so the scavenger observer will be placed at 80% of 512K, which will either be in the second page of the space if the page size is 256K, or in the first page if the page size is 512K. - When placing the observer, if the observer hits the first page, we lower the allocation limit (see `ComputeLimit()`). This makes sure the observer isn't skipped by allocations inlined in generated code. However, when we simulate filling the current page, we compute the space left in the current page by comparing the top with the `page_high()` rather than `limit()`. This was done so the tests would also work when inlined allocations are disabled. If we don't look at the `limit()`, we don't take the observer into account and fill more space than is available, triggering the assertion. This can also be reproduced by reducing the % at which the scavenger is triggered so that it hits the first page instead of the second when the page size is 256K, for example passing --scavenge-task-trigger=10. Bug v8:10808, v8:9906 Change-Id: Iad50bb68995de5ee017dcbe069d1fb229c9f5985 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2372545 Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69550}
-
- 11 Aug, 2020 2 commits
-
-
Clemens Backes authored
We only want to serialize TurboFan code, because Liftoff code could contain breakpoints, and we start thinking about embedding other non-relocatable constants. Thus, wait until top-tier compilation finished before triggering serialization. A follow-up CL will make serialization fail if any Liftoff code is encountered. R=ahaas@chromium.org Bug: v8:10777 Change-Id: I73d6c2d868545fcd4069a8cf9850ca7fca375ecb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2349293Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69332}
-
Jakob Gruber authored
Updated: IsOptimized -> HasAttachedOptimizedCode HasOptimizedCode -> HasAvailableOptimizedCode IsInterpreted -> ActiveTierIsIgnition Bug: v8:8888 Change-Id: I96363622b67b53371a974f1c17cef387093f053c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346404 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69326}
-
- 07 Aug, 2020 1 commit
-
-
Leszek Swirski authored
This reverts commit 60ee70bb. Reason for revert: wasm-api-tests/WasmCapiTest.Serialize starts flaking: https://crbug.com/v8/10784 Original change's description: > [wasm] Ensure that only TurboFan code is serialized > > We have the implicit assumption that Liftoff code will never be > serialized, and we start relying on that when implementing new features > (debugging, dynamic tiering). > > This CL makes the serializer fail if the module contains any Liftoff > code. Existing tests are changed to ensure that we fully tiered up > before serializing a module (similar to the logic in Chromium). > The "wasm-clone-module" test needs to serialize the module before > enabling the debugger. > > Note that chrome currently only serializes a module after it fully > tiered up, so that should be fine. If other embedders need the ability > to serialize a module in an arbitrary state, we will have to fix this > later. With this CL we will be on the safe side though and (gracefully) > fail serialization instead of accidentally serializing Liftoff code. > > R=ahaas@chromium.org > > Bug: v8:10777 > Change-Id: I1245e5f7fda3447a544c1e3525e1239cde759174 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336799 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69276} TBR=ahaas@chromium.org,clemensb@chromium.org Change-Id: Ic1349375bd562bb0a2724c39c27ef3247461c97b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10777 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2342845Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69284}
-
- 06 Aug, 2020 1 commit
-
-
Clemens Backes authored
We have the implicit assumption that Liftoff code will never be serialized, and we start relying on that when implementing new features (debugging, dynamic tiering). This CL makes the serializer fail if the module contains any Liftoff code. Existing tests are changed to ensure that we fully tiered up before serializing a module (similar to the logic in Chromium). The "wasm-clone-module" test needs to serialize the module before enabling the debugger. Note that chrome currently only serializes a module after it fully tiered up, so that should be fine. If other embedders need the ability to serialize a module in an arbitrary state, we will have to fix this later. With this CL we will be on the safe side though and (gracefully) fail serialization instead of accidentally serializing Liftoff code. R=ahaas@chromium.org Bug: v8:10777 Change-Id: I1245e5f7fda3447a544c1e3525e1239cde759174 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336799 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69276}
-
- 05 Aug, 2020 2 commits
-
-
Clemens Backes authored
This function was only used in a single test, and it tests a scenario which cannot happen any more with the module cache: Having two copies of the same NativeModule in an isolate. Hence remove the respective runtime function and the test. R=ahaas@chromium.org Change-Id: Id7cdffbdf1bdf95a7eb31fdeb7d75b8e326bb90e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339100Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69246}
-
Jakob Gruber authored
With the new Turbofan variants (NCI and Turboprop), we need a way to distinguish between them both during and after compilation. We initially introduced CompilationTarget to track the variant during compilation, but decided to reuse the code kind as the canonical spot to store this information instead. Why? Because it is an established mechanism, already available in most of the necessary spots (inside the pipeline, on Code objects, in profiling traces). This CL removes CompilationTarget and adds a new NATIVE_CONTEXT_INDEPENDENT kind, plus helper functions to determine various things about a given code kind (e.g.: does this code kind deopt?). As a (very large) drive-by, refactor both Code::Kind and AbstractCode::Kind into a new CodeKind enum class. Bug: v8:8888 Change-Id: Ie858b9a53311b0731630be35cf5cd108dee95b39 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336793 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69244}
-
- 29 Jul, 2020 1 commit
-
-
Mythri A authored
Bug: v8:10582, v8:9684 Change-Id: Ib29e9b56d4c722cb572e86def7eeb3f588dc9c2d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316079Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#69128}
-
- 07 Jul, 2020 2 commits
-
-
Mythri A authored
In turboprop, we reuse the code on a soft deopt. It will be good to differentiate between a deopt that reuses the optimized code on the next run and the deopt that discards the code. The deopt that reuses the code is called a "bailout" because it is just bails out for one execution to the unoptimized code. Change-Id: I9a300201e9b327415e94c2817065d6a561f8ece5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2277807 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#68722}
-
Mythri A authored
When marking the function for a deopt due a dependency change, we only print the information about the code object. This isn't very useful when looking at the output of --trace-deopt. This cl also adds SharedFunctionInfo which makes it easier to see which function got deoptimized. Also adds these events to the log file so they can be used in profview to print more accurate deoptimization information. Change-Id: I1b7a88b5cc2a1ad1ebb0863cf8a4f7d2e151b76a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2281001 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#68705}
-
- 06 Jul, 2020 1 commit
-
-
Leszek Swirski authored
This will allow it to take an OffThreadIsolate in the future, without requiring GetIsolate on SharedFunctionInfo. Change-Id: I7db56d5f0587585f829b26e60683c133760d8ff1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2282534Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#68696}
-
- 30 Jun, 2020 1 commit
-
-
Mike Stanton authored
Often at the d8 prompt, you'd like to explore some pointer found from calls to %DebugPrint(). %DebugPrintPtr() takes a pointer and attempts to print it as an object. Change-Id: Ibc3368136a2ed92f400b52dbf2855f3c7d80d887 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2276046Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#68617}
-
- 18 Jun, 2020 1 commit
-
-
Michael Achenbach authored
This changes PrepareFunctionForOptimization to have the same checks as OptimizeFunctionOnNextCall, as otherwise fuzzing runs into the DCHECK with a bad number of arguments. Bug: chromium:1094866 Change-Id: Ief7d428a12139c47a74607d39792276a2eae4ebf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2250255Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#68410}
-
- 05 Jun, 2020 2 commits
-
-
Clemens Backes authored
When the last debugger is disabled, we tier up the module to TurboFan. Doing this in the background creates problems with profiling, where the debugger is disabled before starting to profile, in order to guarantee profiling of top-tier code. Hence this CL changes the logic such that we only return from the {TierUpAllModulesPerIsolate} methods once tier up is complete. Since the DevTools frontend disables all debuggers before starting a profile, this will ensure that all new calls execute TurboFan code. Because of this change, the {TriggerRecompilation} method is renamed to {RecompileForTiering}. The test cases stay unchanged (do a busy wait until tier up is done), because in the multi-isolates tests it is not guaranteed that tier up is complete after disabling a single debugger. R=thibaudm@chromium.org Bug: v8:10580 Change-Id: I75c4b97825f856f562cfa656c11293d3b964898b 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/+/2232539 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#68212}
-
Arnaud Robin authored
Added display of identation, function index, function names and compiler used when tracing function calls in wasm. R=clemensb@chromium.org Bug: v8:10559 Change-Id: I58b4e7b077365bdee7bae9b5ad8a50178c322147 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2230532 Commit-Queue: Arnaud Robin <arobin@google.com> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68198}
-