• 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
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...