Build & Run
Dependencies
Currently, it is necessary to use clang
(due to gcc
bug) to build VAST. On Linux it is also necessary to use lld
at the moment.
VAST uses llvm-19
which can be obtained from the repository provided by LLVM.
Before building (for Ubuntu) get all the necessary dependencies by running
apt-get install build-essential cmake ninja-build libstdc++-12-dev llvm-19 libmlir-19 libmlir-19-dev mlir-19-tools libclang-19-dev
or an equivalent command for your operating system of choice.
Instructions
To configure project run cmake
with following default options.
The presets assume vcpkg
will be used for dependency management: download and bootstrap vcpkg, then set the VCPKG_ROOT
environment variable to the directory it has been downloaded in.
In case clang
isn't your default compiler prefix the command with CC=clang CXX=clang++
.
If you want to use system installed llvm
and mlir
(on Ubuntu) use:
The simplest way is to run
cmake --workflow release
If this method doesn't work for you, configure the project in the usual way:
cmake --preset default
To use a specific llvm
provide -DCMAKE_PREFIX_PATH=<llvm & mlir instalation paths>
option, where CMAKE_PREFIX_PATH
points to directory containing LLVMConfig.cmake
and MLIRConfig.cmake
.
Note: vast requires LLVM with RTTI enabled. Use LLVM_ENABLE_RTTI=ON
if you build your own LLVM.
Finally, build the project:
cmake --build --preset release
Use debug
preset for debug build.
On Darwin, to make vast able to link binaries with the default sysroot without
having to specify additional flags, use the VAST_DEFAULT_SYSROOT
CMake flag, e.g.
-DVAST_DEFAULT_SYSROOT="$(xcrun --show-sdk-path)"
Same holds for default resource directory. Vast's cmake allows to specify VAST_DEFAULT_RESOURCE_DIR
:
-DVAST_DEFAULT_RESOURCE_DIR="$(clang --print-resource-dir)"
Run
To run mlir codegen of highlevel dialect use.
./builds/default/tools/vast-front/Release/vast-front -vast-emit-mlir=<dialect> <input.c> -o <output.mlir>
Supported dialects are: hl
, ll
, llvm
Test
ctest --preset debug