notes
QBE
Homepage
Source
(
git clone git://c9x.me/qbe.git
)
Mailing list
Releases
1.2 release proposal [
2023-09-07
]
1.1 [
git
] [
tar.xz
] [
2023-02-01
]
1.1 release candidate [
2022-12-15
]
1.0 [
git
] [
tar.xz
] [
2022-06-22
]
1.0 release candidate [
git
] [
2022-05-13
]
1.0 release candidate [
git
] [
2022-03-15
]
Installation
Homebrew:
brew install qbe
[
2022-06-25
]
Gentoo:
qbe
Documentation
QBE Intermediate Language
: the reference document for QBE IL [
1.1
] [
1.0
]
QBE vs LLVM
: short comparison with LLVM [
HN
]
Resources for Amateur Compiler Writers
: bibliography useful to understand and hack QBE [
HN
]
System V ABI AMD64
: simple description of the UNIX x64 ABI used in QBE
Language frontends
cproc
: C11 compiler written in C11 that can bootstrap GCC [
HN
] [
2021-07-21
]
Hare
: systems programming language
Antimony
: simplistic programming language
SCC - Simple C Compiler
: C99 compiler
qc - Quick C
: C compiler in Myrddin
qmbfc
: Brainfuck compiler in Myrddin with QBE and LLVM backends
Myrddin
: ongoing work to use QBE
Related projects
PACC - PAscal C Compiler
: IR design inspired by QBE
sambe
: backend for x86-64 with QBE IR as input
QBN - Quick Backend New
: backend inspired by QBE with similar IR
Tutorials
Hello World
: example program that calls
printf
bf.ssa: Let’s get hands-on with QBE
: building a Brainfuck compiler in QBE IL [
code
]
minic
: simplified C frontend
QBE IL libraries
qbe-rs
(Rust): generate [
2022-02-09
]
qbe-sml
(Standard ML): generate/parse [
2022-02-15
]
qbe-hs
(Haskell): generate [
Hackage
] [
2022-07-13
]
qbe.vim
(Vim): syntax highlighting [
2022-04-30
]
hare-qbe
(Hare): generate/parse [
2023-03-26
]
Misc
Library interface is not being actively worked on [
2022-02-08
]
QBE is not suitable for implementing a JIT [
2022-02-20
]
QBE initialism [
2022-03-19
]
Compiling aggregate types [
2022-04-11
]
Hare’s wishlist for qbe [
2022-05-16
]
Line number info tracking [
2023-06-07
] [
2023-08-18
]