Lines Matching refs:FuncInfo
116 static int addUnwindMapEntry(WinEHFuncInfo &FuncInfo, int ToState, in addUnwindMapEntry() argument
121 FuncInfo.CxxUnwindMap.push_back(UME); in addUnwindMapEntry()
122 return FuncInfo.getLastStateNumber(); in addUnwindMapEntry()
125 static void addTryBlockMapEntry(WinEHFuncInfo &FuncInfo, int TryLow, in addTryBlockMapEntry() argument
148 FuncInfo.TryBlockMap.push_back(TBME); in addTryBlockMapEntry()
159 WinEHFuncInfo &FuncInfo) { in calculateStateNumbersForInvokes() argument
188 auto BaseStateI = FuncInfo.FuncletBaseStateMap.find(FuncletPad); in calculateStateNumbersForInvokes()
189 if (BaseStateI != FuncInfo.FuncletBaseStateMap.end()) in calculateStateNumbersForInvokes()
194 FuncInfo.InvokeStateMap[II] = BaseState; in calculateStateNumbersForInvokes()
197 assert(FuncInfo.EHPadStateMap.count(PadInst) && "EH Pad has no state!"); in calculateStateNumbersForInvokes()
198 FuncInfo.InvokeStateMap[II] = FuncInfo.EHPadStateMap[PadInst]; in calculateStateNumbersForInvokes()
222 static void calculateCXXStateNumbers(WinEHFuncInfo &FuncInfo, in calculateCXXStateNumbers() argument
229 assert(FuncInfo.EHPadStateMap.count(CatchSwitch) == 0 && in calculateCXXStateNumbers()
237 int TryLow = addUnwindMapEntry(FuncInfo, ParentState, nullptr); in calculateCXXStateNumbers()
238 FuncInfo.EHPadStateMap[CatchSwitch] = TryLow; in calculateCXXStateNumbers()
242 calculateCXXStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateCXXStateNumbers()
244 int CatchLow = addUnwindMapEntry(FuncInfo, ParentState, nullptr); in calculateCXXStateNumbers()
249 FuncInfo.FuncletBaseStateMap[CatchPad] = CatchLow; in calculateCXXStateNumbers()
253 calculateCXXStateNumbers(FuncInfo, UserI, CatchLow); in calculateCXXStateNumbers()
256 int CatchHigh = FuncInfo.getLastStateNumber(); in calculateCXXStateNumbers()
257 addTryBlockMapEntry(FuncInfo, TryLow, TryHigh, CatchHigh, Handlers); in calculateCXXStateNumbers()
267 if (FuncInfo.EHPadStateMap.count(CleanupPad)) in calculateCXXStateNumbers()
270 int CleanupState = addUnwindMapEntry(FuncInfo, ParentState, BB); in calculateCXXStateNumbers()
271 FuncInfo.EHPadStateMap[CleanupPad] = CleanupState; in calculateCXXStateNumbers()
277 calculateCXXStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateCXXStateNumbers()
290 static int addSEHExcept(WinEHFuncInfo &FuncInfo, int ParentState, in addSEHExcept() argument
297 FuncInfo.SEHUnwindMap.push_back(Entry); in addSEHExcept()
298 return FuncInfo.SEHUnwindMap.size() - 1; in addSEHExcept()
301 static int addSEHFinally(WinEHFuncInfo &FuncInfo, int ParentState, in addSEHFinally() argument
308 FuncInfo.SEHUnwindMap.push_back(Entry); in addSEHFinally()
309 return FuncInfo.SEHUnwindMap.size() - 1; in addSEHFinally()
312 static void calculateSEHStateNumbers(WinEHFuncInfo &FuncInfo, in calculateSEHStateNumbers() argument
319 assert(FuncInfo.EHPadStateMap.count(CatchSwitch) == 0 && in calculateSEHStateNumbers()
334 int TryState = addSEHExcept(FuncInfo, ParentState, Filter, CatchPadBB); in calculateSEHStateNumbers()
337 FuncInfo.EHPadStateMap[CatchSwitch] = TryState; in calculateSEHStateNumbers()
343 calculateSEHStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateSEHStateNumbers()
351 calculateSEHStateNumbers(FuncInfo, UserI, ParentState); in calculateSEHStateNumbers()
359 if (FuncInfo.EHPadStateMap.count(CleanupPad)) in calculateSEHStateNumbers()
362 int CleanupState = addSEHFinally(FuncInfo, ParentState, BB); in calculateSEHStateNumbers()
363 FuncInfo.EHPadStateMap[CleanupPad] = CleanupState; in calculateSEHStateNumbers()
369 calculateSEHStateNumbers(FuncInfo, PredBlock->getFirstNonPHI(), in calculateSEHStateNumbers()
393 WinEHFuncInfo &FuncInfo) { in calculateSEHStateNumbers() argument
395 if (!FuncInfo.SEHUnwindMap.empty()) in calculateSEHStateNumbers()
404 ::calculateSEHStateNumbers(FuncInfo, FirstNonPHI, -1); in calculateSEHStateNumbers()
407 calculateStateNumbersForInvokes(Fn, FuncInfo); in calculateSEHStateNumbers()
411 WinEHFuncInfo &FuncInfo) { in calculateWinCXXEHStateNumbers() argument
413 if (!FuncInfo.EHPadStateMap.empty()) in calculateWinCXXEHStateNumbers()
422 calculateCXXStateNumbers(FuncInfo, FirstNonPHI, -1); in calculateWinCXXEHStateNumbers()
425 calculateStateNumbersForInvokes(Fn, FuncInfo); in calculateWinCXXEHStateNumbers()
428 static int addClrEHHandler(WinEHFuncInfo &FuncInfo, int ParentState, in addClrEHHandler() argument
436 FuncInfo.ClrEHUnwindMap.push_back(Entry); in addClrEHHandler()
437 return FuncInfo.ClrEHUnwindMap.size() - 1; in addClrEHHandler()
441 WinEHFuncInfo &FuncInfo) { in calculateClrEHStateNumbers() argument
443 if (!FuncInfo.EHPadStateMap.empty()) in calculateClrEHStateNumbers()
471 if (FuncInfo.EHPadStateMap.count(Cleanup)) in calculateClrEHStateNumbers()
479 addClrEHHandler(FuncInfo, ParentState, HandlerType, 0, PadBlock); in calculateClrEHStateNumbers()
480 FuncInfo.EHPadStateMap[Cleanup] = NewState; in calculateClrEHStateNumbers()
490 FuncInfo.EHPadStateMap[CatchSwitch] = ParentState; in calculateClrEHStateNumbers()
498 NewState = addClrEHHandler(FuncInfo, NewState, ClrHandlerType::Catch, in calculateClrEHStateNumbers()
500 FuncInfo.EHPadStateMap[Catch] = NewState; in calculateClrEHStateNumbers()
522 calculateStateNumbersForInvokes(Fn, FuncInfo); in calculateClrEHStateNumbers()
537 WinEHFuncInfo &FuncInfo) { in calculateCatchReturnSuccessorColors() argument
550 FuncInfo.CatchRetSuccessorColorMap[CatchRet] = Color; in calculateCatchReturnSuccessorColors()