mirror of
git://c9x.me/qbe.git
synced 2026-04-05 09:59:47 +00:00
Two simple loop optimizations. 1. Strength reduction of mul[tiplication] by loop induction variable. 2. Hoisting of (address) base into phi where loop induction variable is used only as a base (address) offset. Limited to loops with a single body block, which happily is always innermost loops. This restriction would not be very hard to lift - it would require detecting the set of loop blocks (and ensuring reducibility?) Limited to loop induction variables with 0 initial value and increment of 1 (for mul strength reduction). This limitation is trivial to lift; however all of the cproc/hare[c]/coremark opportunity is with 0/1 loops for mul reduction, and 0 initial value for base-offset opt. |
||
|---|---|---|
| amd64 | ||
| arm64 | ||
| doc | ||
| minic | ||
| rv64 | ||
| test | ||
| tools | ||
| .gitignore | ||
| abi.c | ||
| alias.c | ||
| all.h | ||
| cfg.c | ||
| copy.c | ||
| emit.c | ||
| fold.c | ||
| gcm.c | ||
| gvn.c | ||
| LICENSE | ||
| live.c | ||
| load.c | ||
| loopopt.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.