LLVM 17.0.0git
Namespaces | Functions
GuardUtils.h File Reference
This graph shows which files directly or indirectly include this file:

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::isWidenableBranch (const User *U)
 Returns true iff U is a widenable branch (that is, parseWidenableBranch returns true).
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)
 Analgous to the above, but return the Uses so that that they can be modified.