• Home
  • Raw
  • Download

Lines Matching refs:LI

77 static bool inSubLoop(BasicBlock *BB, Loop *CurLoop, LoopInfo *LI);
80 static bool sink(Instruction &I, const LoopInfo *LI, const DominatorTree *DT,
98 const LoopInfo *LI);
142 LoopInfo *LI; // Current LoopInfo member
194 LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); in runOnLoop()
231 if (LI->getLoopFor(BB) == L) // Ignore blocks in subloops. in runOnLoop()
250 Changed |= sinkRegion(DT->getNode(L->getHeader()), AA, LI, DT, TLI, CurLoop, in runOnLoop()
253 Changed |= hoistRegion(DT->getNode(L->getHeader()), AA, LI, DT, TLI, in runOnLoop()
267 PIC, LI, DT, CurLoop, in runOnLoop()
278 formLCSSARecursively(*L, *DT, LI, SEWP ? &SEWP->getSE() : nullptr); in runOnLoop()
307 bool llvm::sinkRegion(DomTreeNode *N, AliasAnalysis *AA, LoopInfo *LI, in sinkRegion() argument
312 assert(N != nullptr && AA != nullptr && LI != nullptr && in sinkRegion()
327 sinkRegion(Children[i], AA, LI, DT, TLI, CurLoop, CurAST, SafetyInfo); in sinkRegion()
330 if (inSubLoop(BB,CurLoop,LI)) return Changed; in sinkRegion()
354 Changed |= sink(I, LI, DT, CurLoop, CurAST); in sinkRegion()
365 bool llvm::hoistRegion(DomTreeNode *N, AliasAnalysis *AA, LoopInfo *LI, in hoistRegion() argument
369 assert(N != nullptr && AA != nullptr && LI != nullptr && in hoistRegion()
380 if (!inSubLoop(BB, CurLoop, LI)) in hoistRegion()
410 hoistRegion(Children[i], AA, LI, DT, TLI, CurLoop, CurAST, SafetyInfo); in hoistRegion()
444 if (LoadInst *LI = dyn_cast<LoadInst>(&I)) { in canSinkOrHoistInst() local
445 if (!LI->isUnordered()) in canSinkOrHoistInst()
450 if (AA->pointsToConstantMemory(LI->getOperand(0))) in canSinkOrHoistInst()
452 if (LI->getMetadata(LLVMContext::MD_invariant_load)) in canSinkOrHoistInst()
457 if (LI->getType()->isSized()) in canSinkOrHoistInst()
458 Size = I.getModule()->getDataLayout().getTypeStoreSize(LI->getType()); in canSinkOrHoistInst()
461 LI->getAAMetadata(AAInfo); in canSinkOrHoistInst()
463 return !pointerInvalidatedByLoop(LI->getOperand(0), Size, AAInfo, CurAST); in canSinkOrHoistInst()
571 const LoopInfo *LI) { in CloneInstructionInExitBlock() argument
586 if (Loop *OLoop = LI->getLoopFor(OInst->getParent())) in CloneInstructionInExitBlock()
603 static bool sink(Instruction &I, const LoopInfo *LI, const DominatorTree *DT, in sink() argument
655 CloneInstructionInExitBlock(I, *ExitBlock, *PN, LI); in sink()
747 LoopInfo &LI; member in __anon2af457460211::LoopPromoter
754 if (Loop *L = LI.getLoopFor(I->getParent())) in maybeInsertLCSSAPHI()
778 LI(li), DL(dl), Alignment(alignment), AATags(AATags) {} in LoopPromoter()
783 if (LoadInst *LI = dyn_cast<LoadInst>(I)) in isInstInList() local
784 Ptr = LI->getOperand(0); in isInstInList()
808 void replaceLoadWithValue(LoadInst *LI, Value *V) const override { in replaceLoadWithValue() argument
810 AST.copyValue(LI, V); in replaceLoadWithValue()
826 PredIteratorCache &PIC, LoopInfo *LI, in promoteLoopAccessesToScalars() argument
831 assert(LI != nullptr && DT != nullptr && in promoteLoopAccessesToScalars()
978 InsertPts, PIC, *CurAST, *LI, DL, Alignment, AATags); in promoteLoopAccessesToScalars()
1046 static bool inSubLoop(BasicBlock *BB, Loop *CurLoop, LoopInfo *LI) { in inSubLoop() argument
1048 return LI->getLoopFor(BB) != CurLoop; in inSubLoop()