Alive: Automatic LLVM's Instcombine Verifier
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 51 commits ahead, 8 commits behind nunoplopes:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
llvm-pass
pyparsing
tests
.gitignore
AUTHORS
LICENSE
README.md
TODO
alive.py
codegen.py
common.py
constants.py
gen.py
language.py
parser.py
precondition.py
pretty.py
run-tests.sh
value.py

README.md

Alive: Automatic LLVM's Instcombine Verifier

Alive is a tool that can prove the correctness of InstCombine optimizations specified in a high-level language.

Requirements

Alive requires Python 2.7.x and Z3 4.3.2 (or later), which can be obtained from https://github.com/Z3Prover/z3 (use the unstable branch)

Usage

./alive.py file.opt

The 'tests' directory has multiple examples of optimizations.

More Information

Please see this paper for more details about Alive:

http://www.cs.utah.edu/~regehr/papers/pldi15.pdf

Generating Benchmarks

Alive will automatically generate benchmarks in SMT-LIB 2 format when the 'bench' directory exists and when python is run in non-optimized mode (the default). These benchmarks are over the bit-vector theory and may or may not have quantifiers.