• 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
..
compiler Loading commit data...
heap Loading commit data...
interpreter Loading commit data...
libplatform Loading commit data...
libsampler Loading commit data...
parsing Loading commit data...
torque Loading commit data...
wasm Loading commit data...
BUILD.gn Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...
assembler-helper-arm.cc Loading commit data...
assembler-helper-arm.h Loading commit data...
cctest.cc Loading commit data...
cctest.h Loading commit data...
cctest.status Loading commit data...
expression-type-collector-macros.h Loading commit data...
gay-fixed.cc Loading commit data...
gay-fixed.h Loading commit data...
gay-precision.cc Loading commit data...
gay-precision.h Loading commit data...
gay-shortest.cc Loading commit data...
gay-shortest.h Loading commit data...
log-eq-of-logging-and-traversal.js Loading commit data...
print-extension.cc Loading commit data...
print-extension.h Loading commit data...
profiler-extension.cc Loading commit data...
profiler-extension.h Loading commit data...
scope-test-helper.h Loading commit data...
setup-isolate-for-tests.cc Loading commit data...
setup-isolate-for-tests.h Loading commit data...
test-access-checks.cc Loading commit data...
test-accessor-assembler.cc Loading commit data...
test-accessors.cc Loading commit data...
test-allocation.cc Loading commit data...
test-api-accessors.cc Loading commit data...
test-api-interceptors.cc Loading commit data...
test-api.cc Loading commit data...
test-api.h Loading commit data...
test-array-list.cc Loading commit data...
test-assembler-arm.cc Loading commit data...
test-assembler-arm64.cc Loading commit data...
test-assembler-ia32.cc Loading commit data...
test-assembler-mips.cc Loading commit data...
test-assembler-mips64.cc Loading commit data...
test-assembler-ppc.cc Loading commit data...
test-assembler-s390.cc Loading commit data...
test-assembler-x64.cc Loading commit data...
test-atomicops.cc Loading commit data...
test-bignum-dtoa.cc Loading commit data...
test-bignum.cc Loading commit data...
test-bit-vector.cc Loading commit data...
test-circular-queue.cc Loading commit data...
test-code-layout.cc Loading commit data...
test-code-stub-assembler.cc Loading commit data...
test-compiler.cc Loading commit data...
test-constantpool.cc Loading commit data...
test-conversions.cc Loading commit data...
test-cpu-profiler.cc Loading commit data...
test-date.cc Loading commit data...
test-debug.cc Loading commit data...
test-decls.cc Loading commit data...
test-deoptimization.cc Loading commit data...
test-dictionary.cc Loading commit data...
test-disasm-arm.cc Loading commit data...
test-disasm-arm64.cc Loading commit data...
test-disasm-ia32.cc Loading commit data...
test-disasm-mips.cc Loading commit data...
test-disasm-mips64.cc Loading commit data...
test-disasm-ppc.cc Loading commit data...
test-disasm-s390.cc Loading commit data...
test-disasm-x64.cc Loading commit data...
test-diy-fp.cc Loading commit data...
test-double.cc Loading commit data...
test-dtoa.cc Loading commit data...
test-elements-kind.cc Loading commit data...
test-extra.js Loading commit data...
test-factory.cc Loading commit data...
test-fast-dtoa.cc Loading commit data...
test-feedback-vector.cc Loading commit data...
test-feedback-vector.h Loading commit data...
test-field-type-tracking.cc Loading commit data...
test-fixed-dtoa.cc Loading commit data...
test-flags.cc Loading commit data...
test-func-name-inference.cc Loading commit data...
test-fuzz-arm64.cc Loading commit data...
test-global-handles.cc Loading commit data...
test-global-object.cc Loading commit data...
test-hashcode.cc Loading commit data...
test-hashmap.cc Loading commit data...
test-heap-profiler.cc Loading commit data...
test-icache.cc Loading commit data...
test-identity-map.cc Loading commit data...
test-inobject-slack-tracking.cc Loading commit data...
test-inspector.cc Loading commit data...
test-intl.cc Loading commit data...
test-javascript-arm64.cc Loading commit data...
test-js-arm64-variables.cc Loading commit data...
test-js-weak-refs.cc Loading commit data...
test-liveedit.cc Loading commit data...
test-lockers.cc Loading commit data...
test-log-stack-tracer.cc Loading commit data...
test-log.cc Loading commit data...
test-macro-assembler-arm.cc Loading commit data...
test-macro-assembler-mips.cc Loading commit data...
test-macro-assembler-mips64.cc Loading commit data...
test-macro-assembler-x64.cc Loading commit data...
test-managed.cc Loading commit data...
test-mementos.cc Loading commit data...
test-modules.cc Loading commit data...
test-object.cc Loading commit data...
test-orderedhashtable.cc Loading commit data...
test-parsing.cc Loading commit data...
test-platform.cc Loading commit data...
test-poison-disasm-arm.cc Loading commit data...
test-profile-generator.cc Loading commit data...
test-random-number-generator.cc Loading commit data...
test-regexp.cc Loading commit data...
test-representation.cc Loading commit data...
test-roots.cc Loading commit data...
test-sampler-api.cc Loading commit data...
test-serialize.cc Loading commit data...
test-smi-lexicographic-compare.cc Loading commit data...
test-stack-unwinding-x64.cc Loading commit data...
test-strings.cc Loading commit data...
test-strtod.cc Loading commit data...
test-symbols.cc Loading commit data...
test-sync-primitives-arm.cc Loading commit data...
test-sync-primitives-arm64.cc Loading commit data...
test-thread-termination.cc Loading commit data...
test-threads.cc Loading commit data...
test-trace-event.cc Loading commit data...
test-traced-value.cc Loading commit data...
test-transitions.cc Loading commit data...
test-transitions.h Loading commit data...
test-typedarrays.cc Loading commit data...
test-types.cc Loading commit data...
test-unboxed-doubles.cc Loading commit data...
test-unscopables-hidden-prototype.cc Loading commit data...
test-unwinder.cc Loading commit data...
test-usecounters.cc Loading commit data...
test-utils-arm64.cc Loading commit data...
test-utils-arm64.h Loading commit data...
test-utils.cc Loading commit data...
test-version.cc Loading commit data...
test-weakmaps.cc Loading commit data...
test-weaksets.cc Loading commit data...
testcfg.py Loading commit data...
trace-extension.cc Loading commit data...
trace-extension.h Loading commit data...
unicode-helpers.cc Loading commit data...
unicode-helpers.h Loading commit data...