• Nikolaos Papaspyrou's avatar
    heap: Inline GCTracer::Scope constructor and destructor · ae0480a0
    Nikolaos Papaspyrou authored
    Tracer scopes are used in numerous places in src/heap to track time
    spent during various phases of the garbage collection. Usually, they
    are introduced with the TRACE_GC* family of macros, taking the scope
    identifier as a parameter. At most call sites, the scope identifier is
    known at compile time.
    
    This CL inlines the constructor and destructor of GCTracer::Scope, in
    order to enable the C++ compiler to properly optimize the introduction
    of such scopes when the scope identifier is known at compile time,
    using constant propagation. This is expected to have a performance
    impact for short-lived and frequently used scopes, e.g., in incremental
    marking and sweeping steps.
    
    Change-Id: I6f1a2954a437de1fa6dab5e464c20c952d84ffd4
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581774Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79957}
    ae0480a0
gc-tracer.cc 70.8 KB