Given a C program compiled to WASM, SLUMPs superoptimizer generates a new WASM program which is smaller in size, and potentially faster, as we show in the image below.
pipeline.sh <program.c> 4 #CEGIS
dependency
For Ubuntu 18.04, we use apt
to install dependencies:
apt install git subversion cmake gcc-multilib g++-multilib clang llvm-8 re2c z3
slumps
git clone https://github.com/KTH/slumps.git
cd slumps
git submodule update --init
souper
Dependencies
- subversion (svn)
- re2c
- make
- doxygen
- dot (optional)
cd souper
./build_deps.sh
mkdir build && cd build
cmake ..
make
cd ../..
wabt
cd wabt
git submodule update --init
mkdir build && cd build
cmake ..
cmake --build .
cd ../..
Python >= 3.6 LLVM >= 8.0
- Build souper
- export ROOT variable with the absolute path to slumps project. For example
export ROOT=/Users/javierca/Documents/Develop/slumps
- Run pipeline