QBE as an easy-to-embed library
https://c9x.me/git/qbe.git
This significantly improves parsing performance for massive functions with a huge number of temporaries. Parsing the 86MiB IL produced by cproc during zig bootstrap drops from 17m15s to 2.5s (over 400x speedup). The speedup is much smaller for IL produced from normal non-autogenerated C code. Parsing the sqlite3 amalgamation drops from 0.40s to 0.33s. |
||
---|---|---|
amd64 | ||
arm64 | ||
doc | ||
minic | ||
rv64 | ||
test | ||
tools | ||
.gitignore | ||
abi.c | ||
alias.c | ||
all.h | ||
cfg.c | ||
copy.c | ||
emit.c | ||
fold.c | ||
LICENSE | ||
live.c | ||
load.c | ||
main.c | ||
Makefile | ||
mem.c | ||
ops.h | ||
parse.c | ||
README | ||
rega.c | ||
simpl.c | ||
spill.c | ||
ssa.c | ||
util.c |
QBE - Backend Compiler http://c9x.me/compile/ doc/ Documentation. minic/ An example C frontend for QBE. tools/ Miscellaneous tools (testing). test/ Tests. amd64/ arm64/ rv64/ Architecture-specific code. The LICENSE file applies to all files distributed. - Compilation and Installation Invoke make in this directory to create the executable file qbe. Install using 'make install', the standard DESTDIR and PREFIX environment variables are supported. Alternatively, you may simply copy the qbe binary manually.