• 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
instance-type-generator.cc 22.4 KB