Lines Matching refs:FPI
434 void visitFuncletPadInst(FuncletPadInst &FPI);
3171 if (auto *FPI = dyn_cast<FuncletPadInst>(EHPad))
3172 return FPI->getParentPad();
3340 void Verifier::visitFuncletPadInst(FuncletPadInst &FPI) {
3343 SmallVector<FuncletPadInst *, 8> Worklist({&FPI});
3398 if (ExitedPad == &FPI) {
3401 // FPI, but not including FPI since we need to make sure
3402 // to check all direct users of FPI for consistency.
3403 UnresolvedAncestorPad = &FPI;
3418 UnwindPad = ConstantTokenNone::get(FPI.getContext());
3420 UnresolvedAncestorPad = &FPI;
3424 // This unwind edge exits FPI. Make sure it agrees with other
3430 &FPI, U, FirstUser);
3435 if (isa<CleanupPadInst>(&FPI) && !isa<ConstantTokenNone>(UnwindPad) &&
3436 getParentPad(UnwindPad) == getParentPad(&FPI))
3437 SiblingFuncletInfo[&FPI] = cast<TerminatorInst>(U);
3440 // Make sure we visit all uses of FPI, but for nested pads stop as
3442 if (CurrentPad != &FPI)
3447 // When CurrentPad is FPI itself, we don't mark it as resolved even if
3449 // all direct uses of FPI.
3450 assert(CurrentPad == &FPI);
3482 if (auto *CatchSwitch = dyn_cast<CatchSwitchInst>(FPI.getParentPad())) {
3488 SwitchUnwindPad = ConstantTokenNone::get(FPI.getContext());
3492 &FPI, FirstUser, CatchSwitch);
3496 visitInstruction(FPI);