• Ross McIlroy's avatar
    Revert "[csa] verify skipped write-barriers in MemoryOptimizer" · dd6c9536
    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: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61038}
    dd6c9536
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
OWNERS Loading commit data...