Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/trailofbits/vast
VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction.
https://github.com/trailofbits/vast
c clang compiler-frontend compilers cpp intermediate-representation mlir program-analysis
Last synced: about 2 hours ago
JSON representation
VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction.
- Host: GitHub
- URL: https://github.com/trailofbits/vast
- Owner: trailofbits
- License: apache-2.0
- Created: 2021-07-07T15:49:47.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T15:27:47.000Z (7 months ago)
- Last Synced: 2024-04-27T16:52:34.162Z (6 months ago)
- Topics: c, clang, compiler-frontend, compilers, cpp, intermediate-representation, mlir, program-analysis
- Language: C++
- Homepage: https://trailofbits.github.io/vast/
- Size: 4.2 MB
- Stars: 335
- Watchers: 25
- Forks: 24
- Open Issues: 156
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
[![Build & Test](https://github.com/trailofbits/vast/actions/workflows/build.yml/badge.svg)](https://github.com/trailofbits/vast/actions/workflows/build.yml)
[![C++ Linter](https://github.com/trailofbits/vast/actions/workflows/linter.yml/badge.svg)](https://github.com/trailofbits/vast/actions/workflows/linter.yml)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)# VAST: MLIR for Program Analysis
VAST is a library for program analysis and instrumentation of C/C++ and related
languages. VAST provides a foundation for customizable program representation
for a broad spectrum of analyses. Using the MLIR infrastructure, VAST provides
a toolset to represent C/C++ program at various stages of the compilation and
to transform the representation to the best-fit program abstraction.For further information check [trailofbits.github.io/vast/](https://trailofbits.github.io/vast/).
## Try VAST
You can experiment with VAST on [compiler explorer](https://godbolt.org/z/3se3q9Tja). Feel free to use VAST and produce MLIR dialects. To specify the desired MLIR output, utilize the `-vast-emit-mlir=` option. Currently, the supported options are:
- `-vast-emit-mlir=hl` to generate [high-level](https://trailofbits.github.io/vast/dialects/HighLevel/HighLevel/) dialect.
- `-vast-emit-mlir=llvm` to generate LLVM MLIR dialect.Refer to the [vast-front documentation](https://trailofbits.github.io/vast/Tools/vast-front/) for additional details.
## License
VAST is licensed according to the [Apache 2.0](LICENSE) license. VAST links against and uses Clang and LLVM APIs. Clang is also licensed under Apache 2.0, with [LLVM exceptions](https://github.com/llvm/llvm-project/blob/main/clang/LICENSE.TXT).
This research was developed with funding from the Defense Advanced Research Projects Agency (DARPA). The views, opinions and/or findings expressed are those of the author and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.
Distribution Statement A – Approved for Public Release, Distribution Unlimited