[NFC] Add detector for guards expressed as branch by widenable conditions
This patch adds a function to detect guards expressed in explicit control
flow form as branch by and with widenable condition intrinsic call:
%wc = call i1 @llvm.experimental.widenable.condition() %guard_cond = and i1, %some_cond, %wc br i1 %guard_cond, label %guarded, label %deopt deopt: <maybe some non-side-effecting instructions> deoptimize()
This form can be used as alternative to implicit control flow guard
representation expressed by experimental_guard intrinsic.
Differential Revision: https://reviews.llvm.org/D56074
Reviewed By: reames