1311116Sdim//===--- LowerGuardIntrinsic.h - Lower the guard intrinsic ---------------===//
2311116Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6311116Sdim//
7311116Sdim//===----------------------------------------------------------------------===//
8311116Sdim//
9311116Sdim// This pass lowers the llvm.experimental.guard intrinsic to a conditional call
10311116Sdim// to @llvm.experimental.deoptimize.  Once this happens, the guard can no longer
11311116Sdim// be widened.
12311116Sdim//
13311116Sdim//===----------------------------------------------------------------------===//
14311116Sdim#ifndef LLVM_TRANSFORMS_SCALAR_LOWERGUARDINTRINSIC_H
15311116Sdim#define LLVM_TRANSFORMS_SCALAR_LOWERGUARDINTRINSIC_H
16311116Sdim
17311116Sdim#include "llvm/IR/PassManager.h"
18311116Sdim
19311116Sdimnamespace llvm {
20311116Sdim
21311116Sdimstruct LowerGuardIntrinsicPass : PassInfoMixin<LowerGuardIntrinsicPass> {
22311116Sdim  PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
23311116Sdim};
24311116Sdim
25311116Sdim}
26311116Sdim
27311116Sdim#endif //LLVM_TRANSFORMS_SCALAR_LOWERGUARDINTRINSIC_H
28