Lines Matching full:blocks
9 // An irreducible SCC is one which has multiple "header" blocks, i.e., blocks
22 // INPUT CFG: The blocks A and B form an irreducible loop with two headers.
55 // takes a set of incoming blocks (the predecessors) and outgoing blocks (the
57 // hub. Since the hub dominates all the outgoing blocks, each such PHINode
116 SetVector<BasicBlock *> &Blocks, in INITIALIZE_PASS_DEPENDENCY()
125 return L == NewLoop || !Blocks.contains(L->getHeader()); in INITIALIZE_PASS_DEPENDENCY()
137 for (auto *BB : Child->blocks()) { in INITIALIZE_PASS_DEPENDENCY()
161 // Given a set of blocks and headers in an irreducible SCC, convert it into a
166 SetVector<BasicBlock *> &Blocks, in createNaturalLoopInternal() argument
171 assert(Blocks.count(H)); in createNaturalLoopInternal()
190 // of guard blocks that manage the flow of control from the in createNaturalLoopInternal()
209 // Add the guard blocks to the new loop. The first guard block is in createNaturalLoopInternal()
212 // header. Since the new loop is already in LoopInfo, the new blocks in createNaturalLoopInternal()
219 // Add the SCC blocks to the new loop. in createNaturalLoopInternal()
220 for (auto *BB : Blocks) { in createNaturalLoopInternal()
233 reconnectChildLoops(LI, ParentLoop, NewLoop, Blocks, Headers); in createNaturalLoopInternal()
254 SetVector<BasicBlock *> &Blocks, in createNaturalLoop() argument
256 createNaturalLoopInternal(LI, DT, nullptr, Blocks, Headers); in createNaturalLoop()
260 SetVector<BasicBlock *> &Blocks, in createNaturalLoop() argument
262 createNaturalLoopInternal(LI, DT, &L, Blocks, Headers); in createNaturalLoop()
272 SetVector<BasicBlock *> Blocks; in makeReducible() local
277 Blocks.insert(BB); in makeReducible()
281 // Minor optimization: The SCC blocks are usually discovered in an order in makeReducible()
282 // that is the opposite of the order in which these blocks appear as branch in makeReducible()
288 for (auto *BB : reverse(Blocks)) { in makeReducible()
293 if (!Blocks.count(P)) { in makeReducible()
307 createNaturalLoop(LI, DT, G, Blocks, Headers); in makeReducible()