Lines Matching defs:LI
115 static void reconnectChildLoops(LoopInfo &LI, Loop *ParentLoop, Loop *NewLoop,
119 : LI.getTopLevelLoopsVector();
138 if (LI.getLoopFor(BB) != Child)
140 LI.changeLoopFor(BB, NewLoop);
150 LI.destroy(Child);
164 static void createNaturalLoopInternal(LoopInfo &LI, DominatorTree &DT,
202 auto NewLoop = LI.AllocateLoop();
206 LI.addTopLevelLoop(NewLoop);
216 NewLoop->addBasicBlockToLoop(G, LI);
222 if (LI.getLoopFor(BB) == ParentLoop) {
225 LI.changeLoopFor(BB, NewLoop);
233 reconnectChildLoops(LI, ParentLoop, NewLoop, Blocks, Headers);
240 LI.verify(DT);
253 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Function *F,
256 createNaturalLoopInternal(LI, DT, nullptr, Blocks, Headers);
259 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Loop &L,
262 createNaturalLoopInternal(LI, DT, &L, Blocks, Headers);
267 static bool makeReducible(LoopInfo &LI, DominatorTree &DT, Graph &&G) {
303 assert(LI.isLoopHeader(Headers.front()));
307 createNaturalLoop(LI, DT, G, Blocks, Headers);
313 static bool FixIrreducibleImpl(Function &F, LoopInfo &LI, DominatorTree &DT) {
323 Changed |= makeReducible(LI, DT, &F);
327 append_range(WorkList, LI);
333 Changed |= makeReducible(LI, DT, *L);
343 auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
345 return FixIrreducibleImpl(F, LI, DT);
350 auto &LI = AM.getResult<LoopAnalysis>(F);
352 if (!FixIrreducibleImpl(F, LI, DT))