• Seth Brenith's avatar
    [torque] Use generated instance types, part 1 · 91e6421c
    Seth Brenith authored
    This change begins making use of the fact that Torque now knows about
    the relationship between classes and instance types, to replace a few
    repetitive lists:
    
    - Instance type checkers (single and range), defined in
      src/objects/instance-type.h
    - Verification dispatch in src/diagnostics/objects-debug.cc
    - Printer dispatch in src/diagnostics/objects-printer.cc
    - Postmortem object type detection in
      tools/debug_helper/get-object-properties.cc
    
    Torque is updated to generate four macro lists for the instance types,
    representing all of the classes separated in two dimensions: classes
    that correspond to a single instance type versus those that have a
    range, and classes that are fully defined in Torque (with fields and
    methods inside '{}') versus those that are only declared. The latter
    distinction is useful because fully-defined classes are guaranteed to
    correspond to real C++ classes, whereas only-declared classes are not.
    
    A few other changes were required to make the lists above work:
    
    - Renamed IsFiller to IsFreeSpaceOrFiller to better reflect what it does
      and avoid conflicts with the new macro-generated IsFiller method. This
      is the part I'm most worried about: I think the new name is an
      improvement for clarity and consistency, but I could imagine someone
      typing IsFiller out of habit and introducing a bug. If we'd prefer to
      keep the name IsFiller, my other idea is to rename FreeSpace to
      VariableSizeFiller and Filler to FixedSizeFiller.
    - Made Tuple3 extend from Struct, not Tuple2, because IsTuple2 is
      expected to check for only TUPLE2_TYPE and not include TUPLE3_TYPE.
    - Normalized the dispatched behavior for BigIntBase and HeapNumber.
    - Added a few new object printers.
    
    Bug: v8:7793
    Change-Id: I5462bb105f8a314baa59bd6ab6ab6215df6f313c
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1860314
    Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#64597}
    91e6421c
objects.cc 304 KB