Go to the source code of this file.
|
namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations.
|
|
|
bool | llvm::isGuard (const User *U) |
| Returns true iff U has semantics of a guard expressed in a form of call of llvm.experimental.guard intrinsic.
|
|
bool | llvm::isWidenableCondition (const Value *V) |
| Returns true iff V has semantics of llvm.experimental.widenable.condition call.
|
|
bool | llvm::isWidenableBranch (const User *U) |
| Returns true iff U is a widenable branch (that is, extractWidenableCondition returns widenable condition).
|
|
bool | llvm::isGuardAsWidenableBranch (const User *U) |
| Returns true iff U has semantics of a guard expressed in a form of a widenable conditional branch to deopt block.
|
|
bool | llvm::parseWidenableBranch (const User *U, Value *&Condition, Value *&WidenableCondition, BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB) |
| If U is widenable branch looking like: cond = ... wc = call i1 @llvm.experimental.widenable.condition() branch_cond = and i1 cond, wc br i1 branch_cond, label if_true_bb, label if_false_bb ; <— U The function returns true, and the values cond and wc and blocks if_true_bb, if_false_bb are returned in the parameters (Condition, WidenableCondition, IfTrueBB and IfFalseFF) respectively.
|
|
bool | llvm::parseWidenableBranch (User *U, Use *&Cond, Use *&WC, BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB) |
| Analogous to the above, but return the Uses so that they can be modified.
|
|
void | llvm::parseWidenableGuard (const User *U, llvm::SmallVectorImpl< Value * > &Checks) |
|
Value * | llvm::extractWidenableCondition (const User *U) |
|