VAST: Compiler Driver
vast-front serves as the primary vast compiler driver for compiling C/C++. It functions as an extension to the Clang compiler and generally supports all Clang's options. Moreover, vast-front offers several custom options, primarily designed as points of customization for MLIR generation. All these options are prefixed with -vast.
VAST output targets
-vast-emit-mlir=<dialect>- Possible dialects: hl, std, llvm, cir
-
This will execute the translation pipeline up to the specified dialect.
-
-vast-emit-mlir-after=<pass-argument-name> - This will execute the translation pipeline up to the specified mlir pass (including).
-
It uses same names as
optto specify passes. -
-vast-emit-mlir-bytecodecan be used in conjunction with-vast-emit-mlir=<dialect>to print the bytecode format instead of the pretty form.
Other available outputs:
-vast-emit-llvm-vast-emit-obj-vast-emit-asm
Additional customization options include:
-vast-print-pipeline-vast-disable-<pipeline-step>-
Options for
pipeline-step: "canonicalize", "reduce-hl", "standard-types", etc. (see pipelines section below) -
-vast-simplify -
Simplifies high-level output.
-
-vast-show-locs -
Displays locations in MLIR module print.
-
-vast-locs-as-meta-ids -
Uses metadata identifiers instead of file locations for locations.
-
-vast-loc-attrs - When used in conjunction with
-vast-show-locs, emits location data as MLIR attributes.
Debuging and diagnostics
-vast-emit-crash-reproducer="reproducer.mlir"-
Emits an MLIR transformation crash reproducer; refer to debugging docs.
-
-vast-disable-multithreading -
Disables multithreading in pipeline transformations for deterministic debugging.
-
-vast-debug - Prints operations in diagnostics.
-
Prints MLIR stack trace in diagnostics.
-
-vast-disable-verifier -
Skips verification of the produced VAST MLIR module.
-
vast-snapshot-at="pass1;...;passN - After each pass that was specified as an option store MLIR into a file (format is
src.pass_name). -
"*"stores snapshot after every conversion. -
-vast-output-sarif="report.sarif" - Outputs diagnostics as a SARIF report file.
Pipelines
WIP pipelines documentation