The Vaporeon LLVM Pass is designed to add bounds checking and fat pointer propagation to LLVM IR code. It ensures memory safety by tracking pointer bounds and inserting runtime checks to trap out-of-bounds memory accesses.
- Bounds propagation for pointer variables
- Fat pointer representation for pointer variables
- Runtime bounds checking on memory writes
- Trap block for handling out-of-bounds accesses
- Clone the LLVM source code repository.
- Place the
VaporeonPass.cpp
file in thellvm
directory. - Add
add_subdirectory(VaporeonPass)
tollvm/CMakeLists.txt
. - Build LLVM following the standard LLVM build instructions.
To use the Vaporeon Pass in LLVM, follow these steps:
- Build LLVM with the Vaporeon Pass included.
- Use the LLVM opt tool with the
-passes=vaporeonpass
option to run the Vaporeon Pass on LLVM IR code. - Alternatively
sh run.sh
to run all test cases.