Lines Matching full:headers
13 // 1. Collect the set of headers H of the SCC.
14 // 2. Collect the set of predecessors P of these headers. These may be inside as
22 // INPUT CFG: The blocks A and B form an irreducible loop with two headers.
56 // headers). The function also moves every PHINode in an outgoing block to the
117 SetVector<BasicBlock *> &Headers) {
136 if (Headers.count(Child->getHeader())) {
161 // Given a set of blocks and headers in an irreducible SCC, convert it into a
167 SetVector<BasicBlock *> &Headers) {
169 // All headers are part of the SCC
170 for (auto *H : Headers) {
176 for (auto *H : Headers) {
191 // predecessors to the headers.
194 CreateControlFlowHub(&DTU, GuardBlocks, Predecessors, Headers, "irr");
233 reconnectChildLoops(LI, ParentLoop, NewLoop, Blocks, Headers);
255 SetVector<BasicBlock *> &Headers) {
256 createNaturalLoopInternal(LI, DT, nullptr, Blocks, Headers);
261 SetVector<BasicBlock *> &Headers) {
262 createNaturalLoopInternal(LI, DT, &L, Blocks, Headers);
285 // match. So we discover the headers using the reverse of the block order.
286 SetVector<BasicBlock *> Headers;
287 LLVM_DEBUG(dbgs() << "Found headers:");
295 Headers.insert(BB);
302 if (Headers.size() == 1) {
303 assert(LI.isLoopHeader(Headers.front()));
307 createNaturalLoop(LI, DT, G, Blocks, Headers);