Go to file
Roland Paterson-Jones 9e36cbe4d8 Combine fillrpo() and fillpreds() into fillcfg().
Remove edgedel() calls from fillrpo().

Call new prunephis() from fillpreds().
[Curiously this never seems to do anything even tho edgedel()
is no longer called from fillrpo()]

One remaining fillpreds() call in parse.c typecheck - seems
like it will still work the same.

defensive; fillcfg() combining fillrpo() and fillpreds() - problem after simpljmp() - think it is cos fillrpo() is still doing edgedel() which should now be covered by fillpreds()

comment out edgedel() in fillrpo() - fillcfg() no longer asserts after simpljmp() but seems like prunephis() never triggers???

static fillrpo(); remove edgedel() from fillrpo()

replace fillrpo() and/or fillpreds() with fillcfg()
2025-03-14 09:47:05 +01:00
amd64 Re-use (vgrow) b->ins vector in backend xxx_abi() fn's. 2025-03-14 09:47:05 +01:00
arm64 Re-use (vgrow) b->ins vector in backend xxx_abi() fn's. 2025-03-14 09:47:05 +01: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 Re-use (vgrow) b->ins vector in backend xxx_abi() fn's. 2025-03-14 09:47:05 +01:00
test handle large hfas correctly on arm64 2024-12-19 15:27:16 +01:00
tools qbe has its own magic 2024-06-17 13:17:39 +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 Combine fillrpo() and fillpreds() into fillcfg(). 2025-03-14 09:47:05 +01:00
cfg.c Combine fillrpo() and fillpreds() into fillcfg(). 2025-03-14 09:47:05 +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 idup(Ins **, Ins *, ulong) -> idup(Blk *, Ins *, ulong) 2025-03-14 09:47:05 +01:00
main.c Combine fillrpo() and fillpreds() into fillcfg(). 2025-03-14 09:47:05 +01: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 idup(Ins **, Ins *, ulong) -> idup(Blk *, Ins *, ulong) 2025-03-14 09:47:05 +01:00
README Makefile: POSIXify 2022-06-14 13:58:01 +02:00
rega.c idup(Ins **, Ins *, ulong) -> idup(Blk *, Ins *, ulong) 2025-03-14 09:47:05 +01:00
simpl.c idup(Ins **, Ins *, ulong) -> idup(Blk *, Ins *, ulong) 2025-03-14 09:47:05 +01:00
spill.c idup(Ins **, Ins *, ulong) -> idup(Blk *, Ins *, ulong) 2025-03-14 09:47:05 +01:00
ssa.c add width info for comparisons 2024-05-03 21:51:30 +02:00
util.c Re-use (vgrow) b->ins vector in backend xxx_abi() fn's. 2025-03-14 09:47:05 +01: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.