A collection of new (LLVM 15) passes to compile normal-looking code to a callable, jump-to-able blob. Also includes a python library that provides a python interface to produce a blob for any architecture triple.
Inspired by SheLLVM, but should address some of the outdated issues with that project. Thanks to SheLLVM for the inspiration :)
- LLVM-15: Install with
wget -qO - https://apt.llvm.org/llvm.sh | sudo bash -s 15 - Meson 0.63+: Install with
pip install -U mesonand add~/.localto your path
To set up LLVM-15 as alternatives you can run scripts/set-alternatives.sh
The easiest way to install squishy 🐻❄️ is from PyPi (sorry about the name, PyPi has weird rules). If an sdist is installed, meson must be installed and
llvm-15 must be available.
python3 -m pip install pysquishy>=0.1.16
squishy 🐻❄️ uses the meson modern build system. To
build, first ensure that meson and ninja are installed, and that you have
an installation of llvm-15 which you can get here.
Then, invoke:
meson build
cd build
meson compile
to produce the library.
- Aggressive Inliner: Recursively applies alwaysinline and inlines function calls and global variables into the main function.