Lines Matching full:guard
1 //===- MakeGuardsExplicit.cpp - Turn guard intrinsics into guard branches -===//
9 // This pass lowers the @llvm.experimental.guard intrinsic to the new form of
10 // guard represented as widenable explicit branch to the deopt block. The
12 // the guard represented as intrinsic:
14 // call void(i1, ...) @llvm.experimental.guard(i1 %old_cond) [ "deopt"() ]
16 // transforms to a guard represented as widenable explicit branch:
25 // - %guarded is the lower part of old guard intrinsic's parent block split by
46 static void turnToExplicitForm(CallInst *Guard, Function *DeoptIntrinsic) { in turnToExplicitForm() argument
47 // Replace the guard with an explicit branch (just like in GuardWidening). in turnToExplicitForm()
48 BasicBlock *OriginalBB = Guard->getParent(); in turnToExplicitForm()
50 makeGuardControlFlowExplicit(DeoptIntrinsic, Guard, true); in turnToExplicitForm()
53 Guard->eraseFromParent(); in turnToExplicitForm()
76 for (auto *Guard : GuardIntrinsics) in explicifyGuards() local
77 turnToExplicitForm(Guard, DeoptIntrinsic); in explicifyGuards()