mirror of
git://c9x.me/qbe.git
synced 2026-04-05 09:59:47 +00:00
This may happen in a branch QBE doesn't realize is unreachable,
for example (simplified from real code found in ncurses)
data $str = { b "abcdef", b 0 }
function l $f(w %x) {
@start
%.1 =w ceqw %x, 0
jnz %.1, @logic_join, @logic_right
@logic_right
%p =l call $strchr(l $str, w %x)
%.2 =w ceql %p, 0
@logic_join
%.3 =w phi @start %.1, @logic_right %.2
jnz %.3, @fail, @return
@fail
ret 0
@return
%.4 =l sub %p, $str
ret %.4
}
|
||
|---|---|---|
| amd64 | ||
| arm64 | ||
| doc | ||
| minic | ||
| test | ||
| tools | ||
| .gitignore | ||
| .tag | ||
| alias.c | ||
| all.h | ||
| cfg.c | ||
| copy.c | ||
| fold.c | ||
| gas.c | ||
| LICENSE | ||
| live.c | ||
| load.c | ||
| main.c | ||
| Makefile | ||
| mem.c | ||
| ops.h | ||
| parse.c | ||
| README | ||
| rega.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/ Architecture-specific code. The LICENSE file applies to all files distributed. - Compilation Invoke GNU make in this directory to create the executable file obj/qbe. On some systems (BSD) you might have to use 'gmake' instead of 'make'.