Pass that lowers llvm.experimental.guard to widenable explicit branches.
Declared in <llvm/Transforms/Scalar/MakeGuardsExplicit.h>
struct MakeGuardsExplicitPass
: OptionalPassInfoMixin<MakeGuardsExplicitPass>
Unlike LowerGuardIntrinsic, the resulting form remains widenable: each guard becomes a branch on the original condition anded with llvm.experimental.widenable.condition, with the false edge going to a deoptimize block.
| Name | Description |
|---|---|
OptionalPassInfoMixin<MakeGuardsExplicitPass> | A CRTP mix-in for passes that can be skipped. |
| Name | Description |
|---|---|
run | Run make-guards-explicit lowering over the function. |
| Name | Description |
|---|---|
isRequired | Return false; optional passes may be skipped. |