This repository contains examples for llvm.mix extension. Each example can
be run as a benchmark, and can optionally write a dump of stage(1)
LLVM IR.
For these examples to work, the forks of LLVM and Clang need to be built and installed somewhere.
Set LLVM_DIR
variable to the directory containing the installed
LLVMConfig.cmake
when invoking CMake:
$ cmake /path/to/src -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR=/path/to/dist/lib/cmake/llvm
All examples are linked into a single executable mix-examples
. Use
--benchmark_filter
command-line option to separate particular examples to
run:
$ ./clang/mix-examples --benchmark_filter=PowerIter
See --help
and the documentation for Google Benchmark for more options.
Additional options are controlled by the following environment variables:
Variable | Values | Default | Description |
---|---|---|---|
MIX_DUMP |
0 or 1 | 0 | Dump stage(1) LLVM IR to files |
MIX_OPT_LEVEL |
0..3 | 1 | JIT optimization level |
MIX_SIZE_LEVEL |
0..2 | 0 | Size optimization level |
The default value of MIX_OPT_LEVEL
is set to 1 to mirror static build flags
for fair comparison between interpreters and generated specializers.