Repo to house SIHFT passes for LLVM to create COMPAS, a compiler that adds fault tolerance on instruction level for RISCV 32/64 targets. COMPAS is implemented such that it can be used as patch for the RISC-V LLVM toolchain.
If you want to cite this work, please use the following papers.
Cite us? COMPAS Publications
@inproceedings{compas2022,
author={Sharif, Uzair and Mueller-Gritschneder, Daniel and Schlichtmann, Ulf},
booktitle={2022 11th Mediterranean Conference on Embedded Computing (MECO)},
title={COMPAS: Compiler-assisted Software-implemented Hardware Fault Tolerance for RISC-V},
year={2022},
volume={},
number={},
pages={1-4},
doi={10.1109/MECO55406.2022.9797144}}
@inproceedings{compasec2023,
author = {Geier, Johannes and Auer, Lukas and Mueller-Gritschneder, Daniel and Sharif, Uzair and Schlichtmann, Ulf},
title = {CompaSeC: A Compiler-Assisted Security Countermeasure to Address Instruction Skip Fault Attacks on RISC-V},
year = {2023},
isbn = {9781450397834},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3566097.3567925},
doi = {10.1145/3566097.3567925},
booktitle = {Proceedings of the 28th Asia and South Pacific Design Automation Conference},
pages = {676–682},
numpages = {7},
keywords = {RISC-V, compiler, fault injection attack, redundancy},
location = {Tokyo, Japan},
series = {ASPDAC '23}
}Detailed instructions on compiler installation and usage can be found in doc/manual. We provide the manual as pdf.
The manual provides details on how to install LLVM compiler with our SIHFT passes. Further, the manual provides usage instructions on how to harden a given C/C++ project using SIHFT transformations.
Docs outdated? Rebuild them like so…
- After cloning the repo, generate the user manual in
doc/manualusing a LaTeX compiler. For example, we used [latexmk](https://mg.readthedocs.io/latexmk.html) utitlity to generate the manual pdf in some build location using
latexmk -pdf doc/manual/main.tex -outdir=build/