• Seth Brenith's avatar
    [heap-profiler][torque] Report types of all internal objects · e3f8b5db
    Seth Brenith authored
    Heap-profiler changes:
    
    Currently, a whole lot of types are all reported as just "system" in
    heap snapshots. With this change, we can use Torque-generated macro
    lists to easily report type names such as "system / BytecodeArray".
    Those objects still show up in a single category named "(system)" in the
    dev tools UI, so they don't clutter the output. For V8 developers or
    anybody who is interested in an extra-detailed view, this change also
    includes a runtime flag that instructs V8 to upgrade nodes of type
    kHidden to type kNative. After a snapshot is collected with this flag
    enabled, the dev tools UI then shows each internal object type
    separately.
    
    Torque changes:
    
    Currently, Torque emits several macro lists containing pairs of
    (ClassName, CLASS_NAME_TYPE) which can be used to associate instance
    types with Torque class names. However, some Torque classes are not
    included in any of these three lists. In cases like the heap profiler,
    it would be nice to easily generate a complete list including every
    instance type, so this CL includes two changes:
    
    - Include classes in TORQUE_INSTANCE_CHECKERS_MULTIPLE_FULLY_DEFINED
      even if they're not marked `extern`. I'm not sure what exactly we
      were hoping to accomplish in filtering by extern-ness, but it's
      simpler not to and slightly reduces clutter in a couple of files that
      use that macro list.
    - Add a fourth macro list for the previously-ignored category: classes
      which have their own instance type (are not `abstract`), and have
      subtypes, but do not have their fields defined in Torque. This list
      contains just a single item (HashTable), but I like the consistency of
      generating the full set of lists.
    
    Change-Id: Ib24953e12ed13ce353206bbec23a52d8f684dfcc
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610172
    Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
    Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#72138}
    e3f8b5db
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...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...