blob: 8631e33cf5584fc7a4516cd01c2e5d9efe498230 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
A lightweight LLVM python binding for writing JIT compilers
The old llvmpy binding exposes a lot of LLVM APIs but the mapping
of C++-style memory management to Python is error prone. Numba and
many JIT compilers do not need a full LLVM API. Only the IR builder,
optimizer, and JIT compiler APIs are necessary.
llvmlite is a project originally tailored for Numba's needs, using
the following approach:
- A small C wrapper around the parts of the LLVM C++ API we need
that are not already exposed by the LLVM C API.
- A ctypes Python wrapper around the C API.
- A pure Python implementation of the subset of the LLVM IR builder
that we need for Numba.
|