Layout initial experimental stack map gc design
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:Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#691113}
Showing
Please register or sign in to comment