Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mkeeter/ssra
The Solid-State Register Allocator
https://github.com/mkeeter/ssra
compiler jit register-allocation
Last synced: 10 days ago
JSON representation
The Solid-State Register Allocator
- Host: GitHub
- URL: https://github.com/mkeeter/ssra
- Owner: mkeeter
- License: apache-2.0
- Created: 2022-09-29T12:29:12.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-05T12:29:51.000Z (about 2 years ago)
- Last Synced: 2024-10-13T00:56:07.603Z (24 days ago)
- Topics: compiler, jit, register-allocation
- Language: Rust
- Homepage: https://mattkeeter.com/blog/2022-10-04-ssra
- Size: 59.6 KB
- Stars: 82
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# The Solid-State Register Allocator
A simple, extremely fast, reverse linear scan register allocator.See the [detailed write-up](https://mattkeeter.com/blog/2022-10-04-ssra) for an in-depth explanation.
# Building
```
wasm-pack build --target no-modules; and cp pkg/{ssra.js,ssra_bg.wasm} ~/Web/blog/2022-10-04-ssra/
```# Author's note
Through [parallel evolution](https://en.wikipedia.org/wiki/Parallel_evolution),
it [turns out](https://news.ycombinator.com/item?id=33093358)
that this code has the same design as the LuaJIT register allocator;
if you'd like to learn more about their implementation, see
[Mike Pall's IP disclosure](https://lua-users.org/lists/lua-l/2009-11/msg00089.html)
– disregarding the SSL error – or their
[source code](https://github.com/LuaJIT/LuaJIT/blob/5e3c45c43bb0e0f1f2917d432e9d2dba12c42a6e/src/lj_asm.c#L198).