- 27 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Using the tool again, the previous iteration accidentally ignored Node/TNode behind a typedef. Automatic replacement of types with manual cleanup/addition of CASTs where necessary. Bug: v8:9396 Change-Id: I33b6d229669cb80586d5d8e82c04542df671f0b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768367 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63409}
-
- 26 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Forbid using LoadRoot in CSA (with a bailout via CodeAssembler), so that users are forced to use helper macros for roots, which have statically known types. Convert all current uses of LoadRoot to use these macros, introducing new ones where necessary. Bug: v8:9396 Change-Id: I91214fca6e5ace7554d79605706a8a60117468fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762526 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#63398}
-
- 23 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Replace uses of WordEqual on two tagged representation nodes with a new TaggedEqual helper, which on pointer compressed configs only compares the bottom 32-bits of the word. We no longer allow using WordEqual on anything not known to be a WordT (i.e. Node* or TNode<Object>). In the future, this may allow us to ignore the top bits of an uncompressed Smi, and have simpler decompression, though this patch is not sufficient for such a change. As a necessary drive-by, TNodify a bunch of stuff. Bug: v8:8948 Change-Id: Ie11b70709e5d3073f12551b37b420a172a71bc99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763531 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#63372}
-
- 22 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Automated cleanup which finds patterns of `Node* a = foo` where `foo` is a TNode expression, and replaces Node* with the appropriate TNode. Bug: v8:9396 Change-Id: I8b0cd9baf10e74d6e2e336eae62eca6cfe6a9c11 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762515 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63335}
-
- 21 Aug, 2019 1 commit
-
-
Andreas Haas authored
This CL was reviewed originally in https://crrev.com/c/1518181. Bug: v8:7741 Change-Id: Iddb139a24c4b9aee6694e20cb5d04e9f9887160c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1752859 Auto-Submit: Sven Sauleau <sven@cloudflare.com> Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#63321}
-
- 16 Aug, 2019 1 commit
-
-
Dan Elphick authored
Create a new function NewHeapNumberForCodeAssembler used only by CodeAssembler that allocates in read_only_space whenever it is writable (e.g. when constructing builtins). This can allocate in old_space for CSA tests that run after read_only_space is sealed. This move 512 bytes from old_space to read_only_space. Bug: v8:7464 Change-Id: I3e29b38a8c062fa74feed63ecf0d07625c04347f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1752855 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63220}
-
- 12 Aug, 2019 1 commit
-
-
Jakob Gruber authored
This removes LoadStackPointer and its last remaining use in the interpreter assembler. Bug: v8:9534 Change-Id: I19aafb12c5fd50248841a3d92448e64243c723ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1748729 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63164}
-
- 26 Jul, 2019 1 commit
-
-
Georg Neis authored
... mostly by turning them into pointer arguments. After this CL, all remaining non-const reference arguments in the compiler directory are in the backend. Bug: v8:9429 Change-Id: I6a546da0fe93179e1a0b12296632591cbf209808 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719185Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62930}
-
- 12 Jul, 2019 1 commit
-
-
Michael Achenbach authored
This reverts commit a10a1a65. Reason: Huge test time regression, see https://crbug.com/v8/9402. Bug: v8:9402 Change-Id: Ia71309d255ed8d9c3e96a90cc5bf6cb3ad77beaf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1698400 Auto-Submit: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62679}
-
- 11 Jul, 2019 2 commits
-
-
Clemens Hammacher authored
This removes the last remaining use of the AbortJS opcode. We now use AbortCSAAssert instead, which is not influenced by the --disable-abortjs flag. The AbortJS runtime function should only be called from JS now. R=mstarzinger@chromium.org Bug: v8:9396 Change-Id: I791da99594f9e1e99991ac8b03e943297d7d41e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695476 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#62633}
-
Clemens Hammacher authored
The existing AbortJS runtime function can be disabled via --disable-abortjs (which the fuzzers use), but we never want to disable CSA assertions. Hence use a separate runtime function for those. This will also reduce the size of generated strings, since the "CSA_ASSERT failed: " prefix is not part of those strings any more. As a drive-by, this renames all occurences of "DebugAbort" to "AbortJS" to be consistent in that name. R=mstarzinger@chromium.org, tebbi@chromium.org Bug: v8:9453 Change-Id: I52e48032a1d58f296f0364fe8d917e45a2603a2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1692921 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62622}
-
- 25 Jun, 2019 1 commit
-
-
Tobias Tebbi authored
This is a reland of 93b6c866 The bug that caused the test failures has been fixed in https://chromium-review.googlesource.com/c/v8/v8/+/1667417 Original change's description: > [csa] add hint to CAST error message to break in mksnapshot > > Change-Id: I51a22de5d6367c38056ea91eface4f69f6651993 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1664069 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62274} TBR=mvstanton@chromium.org, ulan@chromium.org Change-Id: I7bb0b4237b6eada82456bc9cf2f293d5986f0d65 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1675954Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62353}
-
- 19 Jun, 2019 3 commits
-
-
Adam Klein authored
This reverts commit 93b6c866. Reason for revert: Breaks on nosnap debug: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20nosnap%20-%20debug/24470 Original change's description: > [csa] add hint to CAST error message to break in mksnapshot > > Change-Id: I51a22de5d6367c38056ea91eface4f69f6651993 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1664069 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62274} TBR=ulan@chromium.org,mvstanton@chromium.org,tebbi@chromium.org Change-Id: I778b3a2c79776575efc8de43cf25e19ae301fca9 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1667484Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#62295}
-
Tobias Tebbi authored
This disallows using CSA macros from Torque that have a Node* return type instead of TNode<>. By enforcing CSA types at the boundary between CSA and Torque, we can ensure that the Torque types and the CSA types match. As a drive-by, this CL adds a bit more of CSA typing where it made sense. Bug: v8:7793, v8:6949 Change-Id: I12ea0337c628105ea3c420be747ae50d3a172547 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1660481 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62293}
-
Tobias Tebbi authored
Change-Id: I51a22de5d6367c38056ea91eface4f69f6651993 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1664069Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62274}
-
- 03 Jun, 2019 1 commit
-
-
Ross McIlroy authored
Code stub assembler does implicit compression / decompression when loading values from the heap. As a result, we shouldn't expose explicit compress / decompress operators. BUG=v8:7703 Change-Id: I72b7b862b48f19e918db0e283d1be065a2651b44 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1637879 Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61955}
-
- 28 May, 2019 1 commit
-
-
Georg Schmid authored
R=tebbi@chromium.org Change-Id: I30aab2663180382a078901c10e39cd1ad6c906f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627541 Commit-Queue: Georg Schmid <gsps@google.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61897}
-
- 23 May, 2019 4 commits
-
-
Yang Guo authored
NOPRESUBMIT=true TBR=mstarzinger@chromium.org Bug: v8:9247 Change-Id: I4cd6b79a1c2cba944f6f23caed59d4f1a4ee358b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624217 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61790}
-
Yang Guo authored
TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769}
-
Sigurd Schneider authored
The type of the argument makes it clear what we're internalizing, and this allows us to choose either one based on a template parameter. Change-Id: I6d7865e7fdef364f6cf10ff9267034df182d7539 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624212 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61765}
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 21 May, 2019 2 commits
-
-
Georg Schmid authored
R=tebbi@chromium.org Change-Id: I3f34eeaf4ab9a198ffc68a8c974f0bf35a0582e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622117 Commit-Queue: Georg Schmid <gsps@google.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61704}
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 15 May, 2019 2 commits
-
-
Tobias Tebbi authored
With very few exceptions, this verifies all skipped write-barriers in CSA and Torque, showing that the MemoryOptimizer together with some type information on the stored value are enough to avoid unsafe skipped write-barriers. Changes to CSA: SKIP_WRITE_BARRIER and Store*NoWriteBarrier are verified by the MemoryOptimizer by default. Type information about the stored values (TNode<Smi>) is exploited to safely skip write barriers for stored Smi values. In some cases, the code is re-structured to make it easier to consume for the MemoryOptimizer (manual branch and load elimination). Changes to the MemoryOptimizer: Improve the MemoryOptimizer to remove write barriers: - When the store happens to a CSA-generated InnerAllocate, by ignoring Bitcasts and additions. - When the stored value is the HeapConstant of an immortal immovable root. - When the stored value is a SmiConstant (recognized by BitcastToTaggedSigned). - Fast C-calls are treated as non-allocating. - Runtime calls can be white-listed as non-allocating. Remaining missing cases: - C++-style iterator loops with inner pointers. - Inner allocates that are reloaded from a field where they were just stored (for example an elements backing store). Load elimination would fix that. - Safe stored value types that cannot be expressed in CSA (e.g., Smi|Hole). We could handle that in Torque. - Double-aligned allocations, which are not lowered in the MemoryOptimizer but in CSA. Drive-by change: Avoid Smi suffix for StoreFixedArrayElement since this can be handled by overload resolution (in Torque and C++). Reland Change: Support pointer compression operands. R=jarin@chromium.org TBR=mvstanton@chromium.org Bug: v8:7793 Change-Id: I84e1831eb6bf9be14f36db3f8b485ee4fab6b22e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1612904 Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61522}
-
Santiago Aboy Solanes authored
Bug: v8:9183 Change-Id: Idb1910ae30984f548996651e8b2f153531b8cdb0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605729Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#61519}
-
- 13 May, 2019 1 commit
-
-
Igor Sheludko authored
Having an TaggedImpl template will simplify adding compressed variants of Object and MaybeObject which is required for avoiding unnecessary value decompression in tight copying loops and write barrier implementations. Bug: v8:7703, v8:9183 Change-Id: I388b008aad0dbeb2d33fc5fb80c5f29b55ef993e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588419 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61441}
-
- 10 May, 2019 1 commit
-
-
Andrew Grieve authored
FATAL() calls with more than one argument are preserved. The rest of chrome does this as well. Stack traces and minidumps should be sufficient for analyzing the reason for crashes. This saves 110kb for Android arm32. Bug: chromium:958807 Change-Id: I88a1ec82f1ed7bd5e7dbccf6d645d5584f16de82 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598159 Commit-Queue: Andrew Grieve <agrieve@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61426}
-
- 07 May, 2019 1 commit
-
-
Igor Sheludko authored
... to minimize pollution of v8::internal namespace. This CL also removes usages of WriteBarrierKind from CodeAssembler interface. Bug: v8:9183 Change-Id: I7e87c0a98cfd08b3740a022cf12d3aab415da67a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1599176 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61301}
-
- 26 Apr, 2019 1 commit
-
-
Ross McIlroy authored
This reverts commit da7322c0. Reason for revert: Breaking the pointer compression bots, e.g.: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20pointer%20compression/3047 Original change's description: > [csa] verify skipped write-barriers in MemoryOptimizer > > With very few exceptions, this verifies all skipped write-barriers in > CSA and Torque, showing that the MemoryOptimizer together with some > type information on the stored value are enough to avoid unsafe skipped > write-barriers. > > Changes to CSA: > SKIP_WRITE_BARRIER and Store*NoWriteBarrier are verified by the > MemoryOptimizer by default. > Type information about the stored values (TNode<Smi>) is exploited to > safely skip write barriers for stored Smi values. > In some cases, the code is re-structured to make it easier to consume > for the MemoryOptimizer (manual branch and load elimination). > > Changes to the MemoryOptimizer: > Improve the MemoryOptimizer to remove write barriers: > - When the store happens to a CSA-generated InnerAllocate, by ignoring > Bitcasts and additions. > - When the stored value is the HeapConstant of an immortal immovable root. > - When the stored value is a SmiConstant (recognized by BitcastToTaggedSigned). > - Fast C-calls are treated as non-allocating. > - Runtime calls can be white-listed as non-allocating. > > Remaining missing cases: > - C++-style iterator loops with inner pointers. > - Inner allocates that are reloaded from a field where they were just stored > (for example an elements backing store). Load elimination would fix that. > - Safe stored value types that cannot be expressed in CSA (e.g., Smi|Hole). > We could handle that in Torque. > - Double-aligned allocations, which are not lowered in the MemoryOptimizer > but in CSA. > > Drive-by change: Avoid Smi suffix for StoreFixedArrayElement since this > can be handled by overload resolution (in Torque and C++). > > R=jarin@chromium.org > TBR=mvstanton@chromium.org > > Change-Id: I0af9b710673f350e0fe81c2e59f37da93c024b7c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571414 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61016} TBR=mvstanton@chromium.org,jarin@chromium.org,tebbi@chromium.org Change-Id: I36877cd6d08761726ef8dce8a3e3f2ce3eebe6cf No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585732Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61038}
-
- 25 Apr, 2019 1 commit
-
-
Tobias Tebbi authored
With very few exceptions, this verifies all skipped write-barriers in CSA and Torque, showing that the MemoryOptimizer together with some type information on the stored value are enough to avoid unsafe skipped write-barriers. Changes to CSA: SKIP_WRITE_BARRIER and Store*NoWriteBarrier are verified by the MemoryOptimizer by default. Type information about the stored values (TNode<Smi>) is exploited to safely skip write barriers for stored Smi values. In some cases, the code is re-structured to make it easier to consume for the MemoryOptimizer (manual branch and load elimination). Changes to the MemoryOptimizer: Improve the MemoryOptimizer to remove write barriers: - When the store happens to a CSA-generated InnerAllocate, by ignoring Bitcasts and additions. - When the stored value is the HeapConstant of an immortal immovable root. - When the stored value is a SmiConstant (recognized by BitcastToTaggedSigned). - Fast C-calls are treated as non-allocating. - Runtime calls can be white-listed as non-allocating. Remaining missing cases: - C++-style iterator loops with inner pointers. - Inner allocates that are reloaded from a field where they were just stored (for example an elements backing store). Load elimination would fix that. - Safe stored value types that cannot be expressed in CSA (e.g., Smi|Hole). We could handle that in Torque. - Double-aligned allocations, which are not lowered in the MemoryOptimizer but in CSA. Drive-by change: Avoid Smi suffix for StoreFixedArrayElement since this can be handled by overload resolution (in Torque and C++). R=jarin@chromium.org TBR=mvstanton@chromium.org Change-Id: I0af9b710673f350e0fe81c2e59f37da93c024b7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571414 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61016}
-
- 24 Apr, 2019 1 commit
-
-
Tobias Tebbi authored
Add suport for large object space allocations in Turbofan and use it from CSA when young large objects are enabled. This maintains the Turbofan invariant that the generation is statically predictable. In principle, this enables write barrier elimination for large objects allocated from Torque/CSA. But it doesn't seem to trigger much yet, probably we have to improve the MemoryOptimizer. Bug: v8:7793 Change-Id: I7ea7d0cb549573db65fafe5df5edf67e0ce90893 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565905Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#60984}
-
- 12 Apr, 2019 1 commit
-
-
Igor Sheludko authored
To keep things simple, we just ensure that the spill slots always contain full uncompressed pointers before GC sees them. Bug: v8:8977, v8:7703 Change-Id: I54eab1b3e79e8525200139e487ff64d82ae157e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564198Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60811}
-
- 09 Apr, 2019 1 commit
-
-
Anton Bikineev authored
This change aims to simplify RawMachineAssembler::CallCFunction interface by use of variadic templates. Change-Id: Ie7081f692f62674f891f09abfd7149e8d95eeb81 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526015 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60710}
-
- 01 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
This is a reland of 6604f182 Original change's description: > [heap] Clean-up keys of oldspace weakmaps during scavenge > > This CL adds handling for cleaning up weakmap (EphemeronHashTable) > keys during scavenge, even if the weakmap resides in oldspace. > > Change-Id: If8d711c050ddbcae4dd6e8da549e0c0d08ba47b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523787 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60432} CQ_INCLUDE_TRYBOTS=luci.chrome.try:Mac Builder Perf Change-Id: Ie640f2b0340637a5391fb17ba3c9e6422eaf306a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541476 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60554}
-
- 25 Mar, 2019 2 commits
-
-
Sigurd Schneider authored
This reverts commit 6604f182. Bug: chromium:945341 Original change's description: > [heap] Clean-up keys of oldspace weakmaps during scavenge > > This CL adds handling for cleaning up weakmap (EphemeronHashTable) > keys during scavenge, even if the weakmap resides in oldspace. > > Change-Id: If8d711c050ddbcae4dd6e8da549e0c0d08ba47b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523787 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60432} TBR=ulan@chromium.org,jarin@chromium.org,sigurds@chromium.org,leszeks@chromium.org Change-Id: I9dd9b11990a262a457fd1bedc2b45b4a786a81f7 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538133Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60447}
-
Sigurd Schneider authored
This CL adds handling for cleaning up weakmap (EphemeronHashTable) keys during scavenge, even if the weakmap resides in oldspace. Change-Id: If8d711c050ddbcae4dd6e8da549e0c0d08ba47b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523787 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60432}
-
- 12 Mar, 2019 1 commit
-
-
Hannes Payer authored
Bug: v8:8945 Change-Id: I14ca4b29f1b12ff95e718d431f65d88ab1238c53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1511478Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60177}
-
- 18 Feb, 2019 1 commit
-
-
Mike Stanton authored
Reason for revert/reland: UBSan complained of unaligned reads. To improve the Torque debugging experience, we can add source positions for each line. This information is carried through the generated CSA code (in <output directory>/gen/torque-generated/*.cc) and embedded as SourcePositions in the Code object. At snapshot time, these SourcePositions are stripped from the Code object and turned into platform-appropriate line number debug information. At this time on Linux, you'll need to build with "is_clang=false" in order to use GCC, because crucial steps are missing in Clang's ability to convey the information into the binary successfully. This CL also introduces a flag to control the existing source information in CSA code. --enable-source-at-csa-bind is now set to false by default because it's a bit confusing to "hop" between source lines in .TQ files and in .CC files. I expect to continue making adjustments there, as I want to provide helpful debugging aids at the CSA level as well as the Torque level. The current configuration prioritizes Torque. TBR=tebbi@chromium.org Bug: v8:8418 Change-Id: Idb80467d3679ec2361386fe9b67597b93d7f72cf Reviewed-on: https://chromium-review.googlesource.com/c/1475763Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#59657}
-
- 15 Feb, 2019 1 commit
-
-
Michael Stanton authored
This reverts commit 0a24e67a. Reason for revert: Broke Linux 64 UBSan build with unaligned read in the snapshot. Will investigate... Original change's description: > [Torque] Add source positions for Torque files > > To improve the Torque debugging experience, we can add source positions > for each line. This information is carried through the generated > CSA code (in <output directory>/gen/torque-generated/*.cc) and > embedded as SourcePositions in the Code object. > > At snapshot time, these SourcePositions are stripped from the Code > object and turned into platform-appropriate line number debug > information. > > At this time on Linux, you'll need to build with "is_clang=false" > in order to use GCC, because crucial steps are missing in Clang's > ability to convey the information into the binary successfully. > > This CL also introduces a flag to control the existing source > information in CSA code. --enable-source-at-csa-bind is now set > to false by default because it's a bit confusing to "hop" between > source lines in .TQ files and in .CC files. I expect to continue > making adjustments there, as I want to provide helpful > debugging aids at the CSA level as well as the Torque level. > The current configuration prioritizes Torque. > > A detailed guide on usage to follow (also on v8.dev). > > Bug: v8:8418 > Change-Id: Ib4226877ce4cae451bb4d0c546927e89f4e66b58 > Reviewed-on: https://chromium-review.googlesource.com/c/1475473 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59636} TBR=mvstanton@chromium.org,tebbi@chromium.org Change-Id: I4ccf94dfdb8b2ba238a60db9ecc8e3ceebef2699 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8418 Reviewed-on: https://chromium-review.googlesource.com/c/1475757Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#59637}
-