Do you know if llvm got good at garbage collection support recently? My understanding was always that their optimisations would mangle your stack/registers so much that a decent incremental exact GC becomes super hard. And that something like keeping one/two pointers to the tip of the heap in dedicated registers is super hard/annoying too.
https://medium.com/@MartinCracauer/generational-garbage-coll...
And a review of LLVM's GC facilities: https://medium.com/@MartinCracauer/llvms-garbage-collection-...
Overall message is that there are many different ways to get to the destination, and creative solutions are mixed in.