• Seth Brenith's avatar
    Reland "[torque] Support bitfield structs stored within Smis" · 527f9de1
    Seth Brenith authored
    This reverts commit 4dc1fb4e.
    
    Reason for revert: the regression from the original change was likely due to unlucky factors like code alignment.
    
    Original change's description:
    > Revert "[torque] Support bitfield structs stored within Smis"
    >
    > This reverts commit e5e4ea96.
    >
    > Reason for revert: mysterious performance regression chromium:1052756
    >
    > Original change's description:
    > > [torque] Support bitfield structs stored within Smis
    > >
    > > This change moves the definition of the bits stored in DebugInfo::flags
    > > to Torque, and updates the only Torque usage of that field to use more
    > > natural syntax. This is intended as an example of common patterns found
    > > in various other classes. Several supporting changes are required:
    > >
    > > 1. Add a new type representing a bitfield struct stored within a Smi. It
    > >    is currently called SmiTagged, but I'm open to suggestions.
    > > 2. Add an enum-style output for Torque bitfield structs whose bitfields
    > >    occupy only one bit each.
    > > 3. Add a new case to MachineOperatorReducer that makes the generated
    > >    code for IncBlockCounter match with what was generated before this
    > >    change.
    > > 4. Add support for reporting these bitfields in the postmortem debugging
    > >    API. The format matches existing bitfields but with an offset value
    > >    that includes the SMI shift size.
    > >
    > > Bug: v8:7793
    > > Change-Id: Icaecbe4a162da55d2d9a3a35a8ea85b285b2f1b7
    > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2028832
    > > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
    > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
    > > Cr-Commit-Position: refs/heads/master@{#66182}
    >
    > Bug: chromium:1052756, v8:7793
    > Change-Id: I9e2897efbb6321124bf4952cf09de2f179f7310d
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062569
    > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#66349}
    
    # Not skipping CQ checks because original CL landed > 1 day ago.
    
    Bug: chromium:1052756, v8:7793
    Change-Id: I6087928aa14c8551ebd294513bd8d6ffa402a0d4
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2070635Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    Cr-Commit-Position: refs/heads/master@{#66465}
    527f9de1
implementation-visitor.cc 160 KB