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. If U does not match this pattern, return false.
Declared in <llvm/Analysis/GuardUtils.h>
bool
parseWidenableBranch(
User const* U,
Value*& Condition,
Value*& WidenableCondition,
BasicBlock*& IfTrueBB,
BasicBlock*& IfFalseBB);
| Name | Description |
|---|---|
| Condition | LLVM Value Representation |
| WidenableCondition | LLVM Value Representation |
| IfTrueBB | LLVM Basic Block Representation |
| IfFalseBB | LLVM Basic Block Representation |