LLVM
8.0.1
include
llvm
Transforms
Utils
GuardUtils.h
Go to the documentation of this file.
1
//===-- GuardUtils.h - Utils for work with guards ---------------*- 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
// Utils that are used to perform transformations related to guards and their
10
// conditions.
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_TRANSFORMS_UTILS_GUARDUTILS_H
14
#define LLVM_TRANSFORMS_UTILS_GUARDUTILS_H
15
16
namespace
llvm
{
17
18
class
CallInst;
19
class
Function
;
20
21
/// Splits control flow at point of \p Guard, replacing it with explicit branch
22
/// by the condition of guard's first argument. The taken branch then goes to
23
/// the block that contains \p Guard's successors, and the non-taken branch
24
/// goes to a newly-created deopt block that contains a sole call of the
25
/// deoptimize function \p DeoptIntrinsic.
26
void
makeGuardControlFlowExplicit
(Function *DeoptIntrinsic, CallInst *Guard);
27
28
}
// llvm
29
30
#endif // LLVM_TRANSFORMS_UTILS_GUARDUTILS_H
llvm
This class represents lattice values for constants.
Definition:
AllocatorList.h:24
llvm::makeGuardControlFlowExplicit
void makeGuardControlFlowExplicit(Function *DeoptIntrinsic, CallInst *Guard)
Splits control flow at point of Guard, replacing it with explicit branch by the condition of guard's ...
Definition:
GuardUtils.cpp:27
llvm::codeview::PublicSymFlags::Function
Generated on Sun Dec 20 2020 13:53:03 for LLVM by
1.8.13