• Anton Bikineev's avatar
    cppgc: young-gen: Add runtime option for young generation · c7dfa3fa
    Anton Bikineev authored
    The CL introduces a new option --cppgc-young-generation. This option
    can't be enabled statically, because V8 options are parsed after heap
    initialization. The CL changes minor GC so that it can be enabled
    dynamically. The way it works is as follows:
    - the user calls YoungGenerationEnabler::Enable();
    - a heap checks in the next atomic pause whether the flag was enabled;
    - if so, the heap enables young generation for itself.
    
    To avoid barrier regressions without young-generation enabled, the CL changes the meaning of the global flag is-any-incremental-or-concurrent-marking to is-barrier-enabled.
    
    The runtime option would enable us to test young generation on try-
    and performance-bots.
    
    Bug: chromium:1029379
    Change-Id: I664cccdcd208225ffcbf9901f1284b56d088c5c3
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3607993
    Commit-Queue: Anton Bikineev <bikineev@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#80274}
    c7dfa3fa