Lines Matching refs:FuncInfo

132 static int addUnwindMapEntry(WinEHFuncInfo &FuncInfo, int ToState,  in addUnwindMapEntry()  argument
137 FuncInfo.CxxUnwindMap.push_back(UME); in addUnwindMapEntry()
138 return FuncInfo.getLastStateNumber(); in addUnwindMapEntry()
141 static void addTryBlockMapEntry(WinEHFuncInfo &FuncInfo, int TryLow, in addTryBlockMapEntry() argument
165 FuncInfo.TryBlockMap.push_back(TBME); in addTryBlockMapEntry()
176 WinEHFuncInfo &FuncInfo) { in calculateStateNumbersForInvokes() argument
204 auto BaseStateI = FuncInfo.FuncletBaseStateMap.find(FuncletPad); in calculateStateNumbersForInvokes()
205 if (BaseStateI != FuncInfo.FuncletBaseStateMap.end()) in calculateStateNumbersForInvokes()
210 FuncInfo.InvokeStateMap[II] = BaseState; in calculateStateNumbersForInvokes()
213 assert(FuncInfo.EHPadStateMap.count(PadInst) && "EH Pad has no state!"); in calculateStateNumbersForInvokes()
214 FuncInfo.InvokeStateMap[II] = FuncInfo.EHPadStateMap[PadInst]; in calculateStateNumbersForInvokes()
241 static void calculateCXXStateNumbers(WinEHFuncInfo &FuncInfo, in calculateCXXStateNumbers() argument
248 assert(FuncInfo.EHPadStateMap.count(CatchSwitch) == 0 && in calculateCXXStateNumbers()
256 int TryLow = addUnwindMapEntry(FuncInfo, ParentState, nullptr); in calculateCXXStateNumbers()
257 FuncInfo.EHPadStateMap[CatchSwitch] = TryLow; in calculateCXXStateNumbers()
261 calculateCXXStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateCXXStateNumbers()
263 int CatchLow = addUnwindMapEntry(FuncInfo, ParentState, nullptr); in calculateCXXStateNumbers()
274 addTryBlockMapEntry(FuncInfo, TryLow, TryHigh, CatchLow, Handlers); in calculateCXXStateNumbers()
275 unsigned TBMEIdx = FuncInfo.TryBlockMap.size() - 1; in calculateCXXStateNumbers()
278 FuncInfo.FuncletBaseStateMap[CatchPad] = CatchLow; in calculateCXXStateNumbers()
284 calculateCXXStateNumbers(FuncInfo, UserI, CatchLow); in calculateCXXStateNumbers()
292 calculateCXXStateNumbers(FuncInfo, UserI, CatchLow); in calculateCXXStateNumbers()
296 int CatchHigh = FuncInfo.getLastStateNumber(); in calculateCXXStateNumbers()
299 FuncInfo.TryBlockMap[TBMEIdx].CatchHigh = CatchHigh; in calculateCXXStateNumbers()
301 addTryBlockMapEntry(FuncInfo, TryLow, TryHigh, CatchHigh, Handlers); in calculateCXXStateNumbers()
313 if (FuncInfo.EHPadStateMap.count(CleanupPad)) in calculateCXXStateNumbers()
316 int CleanupState = addUnwindMapEntry(FuncInfo, ParentState, BB); in calculateCXXStateNumbers()
317 FuncInfo.EHPadStateMap[CleanupPad] = CleanupState; in calculateCXXStateNumbers()
323 calculateCXXStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateCXXStateNumbers()
336 static int addSEHExcept(WinEHFuncInfo &FuncInfo, int ParentState, in addSEHExcept() argument
343 FuncInfo.SEHUnwindMap.push_back(Entry); in addSEHExcept()
344 return FuncInfo.SEHUnwindMap.size() - 1; in addSEHExcept()
347 static int addSEHFinally(WinEHFuncInfo &FuncInfo, int ParentState, in addSEHFinally() argument
354 FuncInfo.SEHUnwindMap.push_back(Entry); in addSEHFinally()
355 return FuncInfo.SEHUnwindMap.size() - 1; in addSEHFinally()
361 static void calculateSEHStateNumbers(WinEHFuncInfo &FuncInfo, in calculateSEHStateNumbers() argument
368 assert(FuncInfo.EHPadStateMap.count(CatchSwitch) == 0 && in calculateSEHStateNumbers()
383 int TryState = addSEHExcept(FuncInfo, ParentState, Filter, CatchPadBB); in calculateSEHStateNumbers()
386 FuncInfo.EHPadStateMap[CatchSwitch] = TryState; in calculateSEHStateNumbers()
392 calculateSEHStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateSEHStateNumbers()
402 calculateSEHStateNumbers(FuncInfo, UserI, ParentState); in calculateSEHStateNumbers()
410 calculateSEHStateNumbers(FuncInfo, UserI, ParentState); in calculateSEHStateNumbers()
418 if (FuncInfo.EHPadStateMap.count(CleanupPad)) in calculateSEHStateNumbers()
421 int CleanupState = addSEHFinally(FuncInfo, ParentState, BB); in calculateSEHStateNumbers()
422 FuncInfo.EHPadStateMap[CleanupPad] = CleanupState; in calculateSEHStateNumbers()
428 calculateSEHStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateSEHStateNumbers()
452 WinEHFuncInfo &FuncInfo) { in calculateSEHStateNumbers() argument
454 if (!FuncInfo.SEHUnwindMap.empty()) in calculateSEHStateNumbers()
463 ::calculateSEHStateNumbers(FuncInfo, FirstNonPHI, -1); in calculateSEHStateNumbers()
466 calculateStateNumbersForInvokes(Fn, FuncInfo); in calculateSEHStateNumbers()
470 WinEHFuncInfo &FuncInfo) { in calculateWinCXXEHStateNumbers() argument
472 if (!FuncInfo.EHPadStateMap.empty()) in calculateWinCXXEHStateNumbers()
481 calculateCXXStateNumbers(FuncInfo, FirstNonPHI, -1); in calculateWinCXXEHStateNumbers()
484 calculateStateNumbersForInvokes(Fn, FuncInfo); in calculateWinCXXEHStateNumbers()
487 static int addClrEHHandler(WinEHFuncInfo &FuncInfo, int HandlerParentState, in addClrEHHandler() argument
496 FuncInfo.ClrEHUnwindMap.push_back(Entry); in addClrEHHandler()
497 return FuncInfo.ClrEHUnwindMap.size() - 1; in addClrEHHandler()
501 WinEHFuncInfo &FuncInfo) { in calculateClrEHStateNumbers() argument
503 if (!FuncInfo.EHPadStateMap.empty()) in calculateClrEHStateNumbers()
561 int CleanupState = addClrEHHandler(FuncInfo, HandlerParentState, -1, in calculateClrEHStateNumbers()
569 FuncInfo.EHPadStateMap[Cleanup] = CleanupState; in calculateClrEHStateNumbers()
583 addClrEHHandler(FuncInfo, HandlerParentState, FollowerState, in calculateClrEHStateNumbers()
591 FuncInfo.EHPadStateMap[Catch] = CatchState; in calculateClrEHStateNumbers()
596 FuncInfo.EHPadStateMap[CatchSwitch] = CatchState; in calculateClrEHStateNumbers()
603 for (ClrEHUnwindMapEntry &Entry : llvm::reverse(FuncInfo.ClrEHUnwindMap)) { in calculateClrEHStateNumbers()
637 int UserState = FuncInfo.EHPadStateMap[ChildCleanup]; in calculateClrEHStateNumbers()
639 FuncInfo.ClrEHUnwindMap[UserState].TryParentState; in calculateClrEHStateNumbers()
641 UserUnwindDest = FuncInfo.ClrEHUnwindMap[UserUnwindState] in calculateClrEHStateNumbers()
689 UnwindDestState = FuncInfo.EHPadStateMap[UnwindDest->getFirstNonPHI()]; in calculateClrEHStateNumbers()
696 calculateStateNumbersForInvokes(Fn, FuncInfo); in calculateClrEHStateNumbers()