djwatson24
Joined 12 years ago
Karma
61
Submissions
22
Member since
Feb 20
Joined 12 years ago
Haha! Nerd jokes are the best jokes
However not without downsides. It sounds like average code is only 2x faster than Lua, vs. LuaJit which is often 5-10x faster.
It’s quite nice and only a small bit more code than an ast interpreter - but not as fast as a luajit- style tail calling bytecode vm, nor a baseline jit like copy and patch. It works wonders in languages that support closures though.
https://www-labs.iro.umontreal.ca/~feeley/papers/FeeleyLapal...
At the faang I worked at, some small portion of servers ran the sanitizers in prod, so you’re not reliant on test coverage nearly so much for catching rare issues.
Also note that tree.c speeds up substantially if you link with a better malloc like jemalloc or tcmalloc.
‘Register spilling and live-range splitting for SSA-form programs’ and ‘Preference-Guided Register Assignment’
It’s much cleaner to code, since you don’t need to generate live ranges explicitly, and can break it up in two passes. Linear scan creates new inactive /active intervals, while the ssa form allocators just reuse the ssa graph. I’ve never benchmarked them back to back though.