• 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
Name
Last commit
Last update
..
api Loading commit data...
asmjs Loading commit data...
ast Loading commit data...
base Loading commit data...
builtins Loading commit data...
codegen Loading commit data...
common Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
d8 Loading commit data...
date Loading commit data...
debug Loading commit data...
deoptimizer Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
extensions Loading commit data...
flags Loading commit data...
handles Loading commit data...
heap Loading commit data...
ic Loading commit data...
init Loading commit data...
inspector Loading commit data...
interpreter Loading commit data...
json Loading commit data...
libplatform Loading commit data...
libsampler Loading commit data...
logging Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parsing Loading commit data...
profiler Loading commit data...
protobuf Loading commit data...
regexp Loading commit data...
roots Loading commit data...
runtime Loading commit data...
sanitizer Loading commit data...
snapshot Loading commit data...
strings Loading commit data...
tasks Loading commit data...
third_party Loading commit data...
torque Loading commit data...
tracing Loading commit data...
trap-handler Loading commit data...
utils Loading commit data...
wasm Loading commit data...
zone Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...