Home | History | Annotate | Line # | Download | only in Instrumentation
      1 //===- BoundsChecking.h - Bounds checking instrumentation -------*- C++ -*-===//
      2 //
      3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
      4 // See https://llvm.org/LICENSE.txt for license information.
      5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
      6 //
      7 //===----------------------------------------------------------------------===//
      8 
      9 #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_BOUNDSCHECKING_H
     10 #define LLVM_TRANSFORMS_INSTRUMENTATION_BOUNDSCHECKING_H
     11 
     12 #include "llvm/IR/PassManager.h"
     13 
     14 namespace llvm {
     15 
     16 /// A pass to instrument code and perform run-time bounds checking on loads,
     17 /// stores, and other memory intrinsics.
     18 struct BoundsCheckingPass : PassInfoMixin<BoundsCheckingPass> {
     19   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
     20   static bool isRequired() { return true; }
     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