• Tobias Tebbi's avatar
    [compiler] support bigger representations in load elimination · 1ec03946
    Tobias Tebbi authored
    This removes the restriction on load elimination to only track fields
    of representations with kTaggedSize, and instead also allows fields with
    representations using multiples of kTaggedSize (that is, Float64 and Word64
    on pointer-compressed or 32-bit platforms).
    
    In order not to regress JIT-compile time for the common case of
    kTaggedSize-sized fields, we maintain information for bigger fields multiple
    times, once for each kTaggedSize-multiple offset that covers it. By checking
    that all copies of this information are still there when reading from the
    load elimination state, updates to the load elimination state don't need to
    take special care of bigger fields.
    
    Change-Id: I9b5f3d2d6e3b4f145c20d33fbc764869bf50a365
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1752843
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#63222}
    1ec03946
load-elimination.h 12.1 KB