• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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