• Jakob Gruber's avatar
    Revert "[builtins]: Optimize CreateTypedArray to use element size log 2 for calculations." · ced2e4ee
    Jakob Gruber authored
    This reverts commit c9ef0405.
    
    Reason for revert: https://crbug.com/932034
    
    Original change's description:
    > [builtins]: Optimize CreateTypedArray to use element size log 2 for calculations.
    >
    > TypedArrayElementsInfo now represents an element's size as a log 2 and typed as
    > uintptr.  This simplifies and speeds up (avoids possible HeapNumber allocations) a
    > number of calculations:
    >
    >   - Number of Elements (length) -> Byte Length - is now a WordShl
    >   - Byte Length -> Number of Elements (length) - is now a WordShr
    >   - Testing alignment (byte offset or length)  - is now a WordAnd
    >
    > These element/byte length related calculations are encapsulated in
    > TypedArrayElementsInfo as struct methods.
    >
    > This reduces the size of CreateTypedArray by 2.125 KB (24%) on Mac x64.release:
    >   - Before: 9,088
    >   - After:  6,896
    >
    > This improves the performance of the following microbencmarks
    >   - TypedArrays-ConstructWithBuffer: ~87%
    >   - TypedArrays-SubarrayNoSpecies:   ~28%
    >
    > Bug: v8:7161
    > Change-Id: I2239fd0e0af9d3ad55cd52318088d3c7c913ae44
    > Reviewed-on: https://chromium-review.googlesource.com/c/1456299
    > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
    > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    > Reviewed-by: Simon Zünd <szuend@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#59531}
    
    TBR=peter.wm.wong@gmail.com,jgruber@chromium.org,petermarshall@chromium.org,szuend@chromium.org
    
    # Not skipping CQ checks because original CL landed > 1 day ago.
    
    Bug: v8:7161, chromium:932034
    Change-Id: I3da95447ce34f84d01629d2791868f3adcdfb387
    Reviewed-on: https://chromium-review.googlesource.com/c/1475764
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59645}
    ced2e4ee
external-reference.cc 34 KB