Runtime support for LLVM's GC Statepoints
Improved performance by ~25% in heavy usage situations, such as a program with heavy recursion that triggers the garbage collector often. The main bottleneck when parsing stack frames is lookup_return_address
, which used 64-bit integer division to compute the hash table's bucket index. I've rounded up the number of entries to be a power-of-two and use a bitwise-AND instead.
Changes:
test
directory to support both Linux and macOS.This release adds a make unified
target that rolls together the headers and sources into a single file, respectively. The products of that target are attached to this release, inside unified-source.tar
.
This release only supports LLVM 4.
This version supports LLVM Stackmap version 3. This version is found in at least LLVM 5 and 6.