QBE as an easy-to-embed library
https://c9x.me/git/qbe.git
In C, if a floating point cannot be represented exactly as an integer, conversion from the former to the latter is implementation-defined. Therefore, it can be flaky to test this against QBE-defined behavior. This was discovered from (unsigned int) 4294967295.0f being an UB, because (uint64_t) 4294967295.0f is 4294967296 > UINT_MAX on amd64 when compiled by either gcc or clang. |
||
---|---|---|
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.