llvm::MakeGuardsExplicitPass

Pass that lowers llvm.experimental.guard to widenable explicit branches.

Synopsis

Declared in <llvm/Transforms/Scalar/MakeGuardsExplicit.h>

struct MakeGuardsExplicitPass
    : OptionalPassInfoMixin<MakeGuardsExplicitPass>

Description

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.

Base Classes

NameDescription
OptionalPassInfoMixin<MakeGuardsExplicitPass>A CRTP mix-in for passes that can be skipped.

Member Functions

NameDescription
run Run make-guards-explicit lowering over the function.

Static Member Functions

NameDescription
isRequired Return false; optional passes may be skipped.