Lines Matching refs:SafetyInfo

85                             const LoopSafetyInfo *SafetyInfo);
87 const LoopSafetyInfo *SafetyInfo);
90 const LoopSafetyInfo *SafetyInfo);
94 const LoopSafetyInfo *SafetyInfo,
102 const LoopSafetyInfo *SafetyInfo);
106 LoopSafetyInfo *SafetyInfo);
228 LoopSafetyInfo SafetyInfo; in runOnLoop() local
229 computeLoopSafetyInfo(&SafetyInfo, L); in runOnLoop()
243 CurAST, &SafetyInfo); in runOnLoop()
246 CurAST, &SafetyInfo); in runOnLoop()
258 AS, ExitBlocks, InsertPts, PIC, LI, DT, TLI, L, CurAST, &SafetyInfo); in runOnLoop()
297 AliasSetTracker *CurAST, LoopSafetyInfo *SafetyInfo) { in sinkRegion() argument
301 CurLoop != nullptr && CurAST != nullptr && SafetyInfo != nullptr && in sinkRegion()
313 Changed |= sinkRegion(Child, AA, LI, DT, TLI, CurLoop, CurAST, SafetyInfo); in sinkRegion()
339 if (isNotUsedInLoop(I, CurLoop, SafetyInfo) && in sinkRegion()
340 canSinkOrHoistInst(I, AA, DT, TLI, CurLoop, CurAST, SafetyInfo)) { in sinkRegion()
342 Changed |= sink(I, LI, DT, CurLoop, CurAST, SafetyInfo); in sinkRegion()
355 AliasSetTracker *CurAST, LoopSafetyInfo *SafetyInfo) { in hoistRegion() argument
358 CurLoop != nullptr && CurAST != nullptr && SafetyInfo != nullptr && in hoistRegion()
391 canSinkOrHoistInst(I, AA, DT, TLI, CurLoop, CurAST, SafetyInfo) && in hoistRegion()
393 I, DT, CurLoop, SafetyInfo, in hoistRegion()
395 Changed |= hoist(I, DT, CurLoop, SafetyInfo); in hoistRegion()
400 Changed |= hoistRegion(Child, AA, LI, DT, TLI, CurLoop, CurAST, SafetyInfo); in hoistRegion()
407 void llvm::computeLoopSafetyInfo(LoopSafetyInfo *SafetyInfo, Loop *CurLoop) { in computeLoopSafetyInfo() argument
411 SafetyInfo->MayThrow = false; in computeLoopSafetyInfo()
412 SafetyInfo->HeaderMayThrow = false; in computeLoopSafetyInfo()
415 (I != E) && !SafetyInfo->HeaderMayThrow; ++I) in computeLoopSafetyInfo()
416 SafetyInfo->HeaderMayThrow |= in computeLoopSafetyInfo()
419 SafetyInfo->MayThrow = SafetyInfo->HeaderMayThrow; in computeLoopSafetyInfo()
423 (BB != BBE) && !SafetyInfo->MayThrow; ++BB) in computeLoopSafetyInfo()
425 (I != E) && !SafetyInfo->MayThrow; ++I) in computeLoopSafetyInfo()
426 SafetyInfo->MayThrow |= !isGuaranteedToTransferExecutionToSuccessor(&*I); in computeLoopSafetyInfo()
434 SafetyInfo->BlockColors = colorEHFunclets(*Fn); in computeLoopSafetyInfo()
442 AliasSetTracker *CurAST, LoopSafetyInfo *SafetyInfo) { in canSinkOrHoistInst() argument
519 return isSafeToExecuteUnconditionally(I, DT, CurLoop, SafetyInfo, nullptr); in canSinkOrHoistInst()
540 const LoopSafetyInfo *SafetyInfo) { in isNotUsedInLoop() argument
541 const auto &BlockColors = SafetyInfo->BlockColors; in isNotUsedInLoop()
587 const LoopSafetyInfo *SafetyInfo) { in CloneInstructionInExitBlock() argument
590 const auto &BlockColors = SafetyInfo->BlockColors; in CloneInstructionInExitBlock()
652 const LoopSafetyInfo *SafetyInfo) { in sink() argument
705 CloneInstructionInExitBlock(I, *ExitBlock, *PN, LI, SafetyInfo); in sink()
720 const LoopSafetyInfo *SafetyInfo) { in hoist() argument
733 !isGuaranteedToExecute(I, DT, CurLoop, SafetyInfo)) in hoist()
753 const LoopSafetyInfo *SafetyInfo, in isSafeToExecuteUnconditionally() argument
758 return isGuaranteedToExecute(Inst, DT, CurLoop, SafetyInfo); in isSafeToExecuteUnconditionally()
846 Loop *CurLoop, AliasSetTracker *CurAST, LoopSafetyInfo *SafetyInfo) { in promoteLoopAccessesToScalars() argument
849 CurAST != nullptr && SafetyInfo != nullptr && in promoteLoopAccessesToScalars()
914 if (SafetyInfo->MayThrow) { in promoteLoopAccessesToScalars()
953 *Load, DT, CurLoop, SafetyInfo, Preheader->getTerminator()); in promoteLoopAccessesToScalars()
974 if (isGuaranteedToExecute(*UI, DT, CurLoop, SafetyInfo)) { in promoteLoopAccessesToScalars()
980 isGuaranteedToExecute(*UI, DT, CurLoop, SafetyInfo); in promoteLoopAccessesToScalars()