• Jakob Gruber's avatar
    Reland "[code] Separate instruction and metadata areas" · a4449f26
    Jakob Gruber authored
    This is a reland of b66993bc
    
    Nothing changed in the reland, the original CL was not the
    culprit for win32 failures. They started earlier, at
    https://ci.chromium.org/p/v8/builders/ci/V8%20Win32/29444
    
    Original change's description:
    > [code] Separate instruction and metadata areas
    >
    > In this CL, Code object layout changes s.t. the instruction
    > area is distinct / non-overlapping from the metadata area.
    >
    > On-heap Code objects now have a variable-size `body` area,
    > containing distinct-but-adjacent `instruction` and `metadata`
    > areas.
    >
    > Off-heap code (= embedded builtins) currently have the same,
    > but in the future the metadata area will move elsewhere and
    > no longer be adjacent to instructions.
    >
    > To implement this, the main changes are:
    >
    >  - The Code object header now contains instruction and metadata
    >    sizes, and no longer contains the safepoint table offset
    >    (it's implicitly the first table of the metadata section).
    >  - The embedded metadata table contains information about both
    >    instruction and metadata areas.
    >
    > I've also added assertions in spots that currently rely on a
    > contiguous body area.
    >
    > Bug: v8:11036
    > Change-Id: I940f0c70c07ad511dafd2d2c3e337de8c92cd4b9
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491025
    > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
    > Reviewed-by: Clemens Backes <clemensb@chromium.org>
    > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
    > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#70743}
    
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Tbr: leszeks@chromium.org, clemensb@chromium.org, dinfuehr@chromium.org
    Bug: v8:11036
    Change-Id: I238562d7e25cf28cc689856ee8b17f25627aaee7
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2497162
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Auto-Submit: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70747}
    a4449f26
code-inl.h 27.3 KB