1 //===- BoundsChecking.h - Bounds checking instrumentation -------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_BOUNDSCHECKING_H 11 #define LLVM_TRANSFORMS_INSTRUMENTATION_BOUNDSCHECKING_H 12 13 #include "llvm/IR/PassManager.h" 14 15 namespace llvm { 16 17 /// A pass to instrument code and perform run-time bounds checking on loads, 18 /// stores, and other memory intrinsics. 19 struct BoundsCheckingPass : PassInfoMixin<BoundsCheckingPass> { 20 PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM); 21 }; 22 23 24 /// Legacy pass creation function for the above pass. 25 FunctionPass *createBoundsCheckingLegacyPass(); 26 27 } // end namespace llvm 28 29 #endif // LLVM_TRANSFORMS_INSTRUMENTATION_BOUNDSCHECKING_H 30