Lines Matching full:latch
556 // outerloop latch.
567 LLVM_DEBUG(dbgs() << "Checking instructions in Loop header and Loop latch\n");
569 // and outer loop latch doesn't contain any unsafe instructions.
582 // Ensure the inner loop exit block flows to the outer loop latch possibly
588 << " does not lead to the outer loop latch.\n";);
591 // The inner loop exit block does flow to the outer loop latch and not some
780 dbgs() << "Loops where the latch is not the exiting block are not"
786 << "Loops where the latch is not the exiting block cannot be"
863 // Reduction lcssa phi will have only 1 incoming block that from loop latch.
878 // incoming values do not come from the outer loop latch or if the
879 // outer loop latch has a single predecessor. In that case, the value will
882 // that may not be the case, e.g. because the outer loop latch may be executed
892 // The incoming value is defined in the outer loop latch. Currently we
893 // only support that in case the outer loop latch has a single predecessor.
894 // This guarantees that the outer loop latch is executed if and only if
897 // latch).
899 // if the values are produced outside the loop latch. We would need
910 // the latch of InnerLoop, i.e., when defs of the incoming values are further
912 // after interchange, since the original inner latch will become the new outer
913 // latch which may have predecessor paths that do not include those incoming
915 // TODO: Handle transformation of lcssa phis in the InnerLoop latch in case of
920 // If the original outer latch has only one predecessor, then values defined
922 // at the new outer latch after interchange.
926 // The outer latch has more than one predecessors, i.e., the inner
928 // PHI nodes in the inner latch are lcssa phis where the incoming values
930 // in the original inner latch. If that is the case then bail out since
931 // those incoming values may not be available at the new outer latch.
984 LLVM_DEBUG(dbgs() << "Found unsupported PHI nodes in inner loop latch.\n");
990 "in inner loop latch.";
1216 // Inner latch
1218 // Outer latch
1227 // Outer latch
1228 // Inner latch
1261 // Now remove inner loop header and latch from the new inner loop and move
1269 // Remove the new outer loop header and latch from the new inner loop.
1290 LLVM_DEBUG(dbgs() << "Splitting the inner loop latch\n");
1293 LLVM_DEBUG(dbgs() << "Failed to find the point to split loop latch \n");
1307 // Create a new latch block for the inner loop. We split at the
1308 // current latch's terminator and then move the condition and all
1310 // new latch block.
1319 // Duplicate instruction and move it the new latch. Update uses that
1450 // defined either in the header or latch. Those blocks will become header and
1451 // latch of the new outer loop, and the only possible users can PHI nodes
1466 // header and latch.
1500 // If the inner loop latch contains LCSSA PHIs, those come from a child loop
1501 // and we have to move them to the new inner latch.
1507 // in the inner loop latch, which became the exit block of the outer loop,
1535 // For PHIs moved from Inner's exit block, we need to replace Inner's latch
1536 // with the new latch.
1604 // The outer loop header might or might not branch to the outer latch.
1649 // For PHIs in the exit block of the outer loop, outer's latch has been
1685 // latch. In that case, we need to create LCSSA phis for them, because after