Skip to content

mhoualla/vaporeon

 
 

Repository files navigation

Vaporeon LLVM Pass

Vaporeon

Vaporeon LLVM Pass

Overview

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.

Features

  • 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

Installation

  1. Clone the LLVM source code repository.
  2. Place the VaporeonPass.cpp file in the llvm directory.
  3. Add add_subdirectory(VaporeonPass) to llvm/CMakeLists.txt.
  4. Build LLVM following the standard LLVM build instructions.

Usage

To use the Vaporeon Pass in LLVM, follow these steps:

  1. Build LLVM with the Vaporeon Pass included.
  2. Use the LLVM opt tool with the -passes=vaporeonpass option to run the Vaporeon Pass on LLVM IR code.
  3. Alternatively sh run.sh to run all test cases.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Makefile 46.0%
  • C++ 24.7%
  • C 12.8%
  • CMake 10.2%
  • LLVM 5.2%
  • Shell 0.7%
  • TypeScript 0.4%