Skip to content

Latest commit

 

History

History

pipeline

pipeline

Intro to superoptimization

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.

pass

Execute

pipeline.sh <program.c> 4 #CEGIS

Build

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 ../..

Requirements

Python >= 3.6 LLVM >= 8.0

To use pipeline.sh

  • Build souper
  • export ROOT variable with the absolute path to slumps project. For example export ROOT=/Users/javierca/Documents/Develop/slumps
  • Run pipeline