• Jake Hughes's avatar
    Layout initial experimental stack map gc design · f5fee0db
    Jake Hughes authored
    This is the first CL of an artefact investigating precise stack map
    support for garbage collection in Blink / V8 using experimental LLVM
    features.
    
    The bulk of this change is made up of two main components:
      - A parser for reading the .llvm_stackmap section (generated by LLVM)
        into a table for use by the GC.
    
      - A simple stack walking mechanism, which, once called, traverses the
        call stack bottom up frame by frame searching for a gc rootset in the
        root table.
    
    This also fleshes out a few helper API functions (see gc/gc_api.h) which
    can be used when calling into the gc library from user code.
    
    The idea for this gc/ directory is to be compiled as a library. It is
    then linked to user code which has be compiled with the relevent LLVM IR
    passes for generating stack maps at pre-defined safepoints. The code for
    which will be forthcoming in a separate CL.
    
    Bug: 978892
    
    Change-Id: Ia2cb40881460b6a084babab9986df6c5303b41f8
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1768770
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: default avatarMichael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#691113}
    f5fee0db
README.md 561 Bytes