Re:Mugo, a toy compiler for a subset of Go that can compile ...
by Hello71 on Monday April 12, 2021 @08:47AM
(#26778769)
musl automatically uses a bump allocator if free is not referenced in the program.
[ Parent
| on HN ]
Re:Mugo, a toy compiler for a subset of Go that can compile ...
by benhoyt on Monday April 12, 2021 @06:12PM
(#26785824)
Interesting. I couldn't find any documentation for how this happens (does it need compiler/linker support to know whether free is used?), but I did find the source code for this __simple_malloc: https://git.musl-libc.org/cgit/musl/tree/src/malloc/lite_mal...
Re:Mugo, a toy compiler for a subset of Go that can compile ...
by KMag on Monday April 12, 2021 @01:22PM
(#26782239)
That's really cool!
Though, I'm curious... don't a lot of malloc implementations use a bump allocator if a simple fragmentation heuristic is below some limit? Presumably musl down inside malloc() has a static bool (or a static function pointer) it uses to keep track if dlsym() has ever returned the address of free(). How much faster is the musl implementation than an implementation using a simple fragmentation heuristic? Presumably, they're both well-predicted conditional branches (and/or indirect branch targets well predicted by the BTB).