#include "llvm/Analysis/GuardUtils.h"
#include "llvm/IR/PatternMatch.h"
usingnamespacellvm;
usingnamespacellvm::PatternMatch;
bool llvm::isGuard(const User *U) { … }
bool llvm::isWidenableCondition(const Value *V) { … }
bool llvm::isWidenableBranch(const User *U) { … }
bool llvm::isGuardAsWidenableBranch(const User *U) { … }
bool llvm::parseWidenableBranch(const User *U, Value *&Condition,
Value *&WidenableCondition,
BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB) { … }
bool llvm::parseWidenableBranch(User *U, Use *&C,Use *&WC,
BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB) { … }
template <typename CallbackType>
static void parseCondition(Value *Condition,
CallbackType RecordCheckOrWidenableCond) { … }
void llvm::parseWidenableGuard(const User *U,
llvm::SmallVectorImpl<Value *> &Checks) { … }
Value *llvm::extractWidenableCondition(const User *U) { … }