QBE as an easy-to-embed library https://c9x.me/git/qbe.git
Find a file
Roland Paterson-Jones 7a19de5cf4 Simplify int mul/udiv/urem of 2^N into shl/shr/and.
Passes the "standard" test suite.

(cproc bootstrap, hare[c] make test, roland units, linpack/coremark run)

However linpack benchmark is now notably slower. Coremark is ~2% faster.

As noticed before, linmark timing is dubious, and maybe my cheap (AMD) laptop
prefers mul to shl.
2024-06-16 21:42:17 +02:00
amd64 replace asm keyword 2024-05-28 10:39:41 +02:00
arm64 replace asm keyword 2024-05-28 10:39:41 +02:00
doc function params must be unique 2024-04-27 10:52:03 +02:00
minic Makefile: POSIXify 2022-06-14 13:58:01 +02:00
rv64 replace asm keyword 2024-05-28 10:39:41 +02:00
test fold scaled offsets in addresses 2024-04-11 14:14:53 +02:00
tools add common linkage for data 2024-04-12 11:33:58 +02:00
.gitignore Makefile: POSIXify 2022-06-14 13:58:01 +02:00
abi.c add new target-specific abi0 pass 2022-10-03 10:41:03 +02:00
alias.c fix bug in alias analysis 2024-03-07 16:40:51 +01:00
all.h Optab-driven copy detection 2024-06-09 22:33:38 +02:00
cfg.c rename blknew() to newblk() 2023-03-22 11:43:46 +01:00
copy.c Optab-driven copy detection 2024-06-09 22:33:38 +02:00
emit.c drop unnecessary check 2024-04-12 11:37:35 +02:00
fold.c new UNDEF Ref 2022-12-25 16:37:33 +01:00
LICENSE update copyright years 2024-03-07 16:45:22 +01:00
live.c refine assertion in liveness analysis 2022-06-14 09:11:44 +02:00
load.c bugfix in load elimination 2022-12-15 09:30:47 +01:00
main.c implement line number info tracking 2023-06-06 18:44:51 +02:00
Makefile add "make wc" 2024-04-12 11:49:00 +02:00
mem.c relax one assert 2024-06-05 12:50:36 +02:00
ops.h Optab-driven copy detection 2024-06-09 22:33:38 +02:00
parse.c Optab-driven copy detection 2024-06-09 22:33:38 +02:00
README Makefile: POSIXify 2022-06-14 13:58:01 +02:00
rega.c rename blknew() to newblk() 2023-03-22 11:43:46 +01:00
simpl.c Simplify int mul/udiv/urem of 2^N into shl/shr/and. 2024-06-16 21:42:17 +02:00
spill.c spill: consider jump argument as use of register 2022-02-17 22:35:22 +01:00
ssa.c add width info for comparisons 2024-05-03 21:51:30 +02:00
util.c fold scaled offsets in addresses 2024-04-11 14:14:53 +02:00

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.