Home | History | Annotate | Download | only in Scalar

Lines Matching defs:Partition

80 /// \brief Maintains the set of instructions of the loop for a partition before
91 /// \brief Returns whether this partition contains a dependence cycle.
94 /// \brief Adds an instruction to this partition.
104 /// \brief Moves this partition into \p Other. This partition becomes empty
112 /// \brief Populates the partition with a transitive closure of all the
148 /// \brief The cloned loop. If this partition is mapped to the original loop,
152 /// \brief Returns the loop where this partition ends up after distribution.
153 /// If this partition is mapped to the original loop then use the block from
168 /// \brief Based on the set of instructions selected for this partition,
208 /// \brief Instructions from OrigLoop selected for this partition.
211 /// \brief Whether this partition contains a dependence cycle.
217 /// \brief The cloned loop. If this partition is mapped to the original loop,
222 /// partition is mapped to the original loop, this is empty.
226 /// finalized. If this partition is mapped to the original loop, these are not
243 /// \brief Adds \p Inst into the current partition if that is marked to
244 /// contain cycles. Otherwise start a new partition for it.
246 // If the current partition is non-cyclic. Start a new one.
253 /// \brief Adds \p Inst into a partition that is not marked to contain
265 /// partition. We could later allow more distribution among these partition
272 /// \brief If a partition contains only conditional stores, we won't vectorize
273 /// it. Try to merge it with a previous cyclic partition.
275 mergeAdjacentPartitionsIf([&](const InstPartition *Partition) {
276 if (Partition->hasDepCycle())
279 // Now, check if all stores are conditional in this partition.
282 for (auto *Inst : *Partition)
371 for (const auto &Partition : PartitionContainer) {
372 for (Instruction *Inst : Partition) {
385 /// \brief Populates the partition with everything that the seeding
410 // Create a loop for each partition except the last. Clone the original
441 for (auto &Partition : PartitionContainer)
442 Partition.removeUnusedInsts();
462 int &Partition = PtrToPartitions[I];
464 Partition = -2;
469 if (Partition == -2)
470 Partition = ThisPartition;
472 else if (Partition == -1)
474 else if (Partition != (int)ThisPartition)
475 Partition = -1;
477 assert(Partition != -2 && "Pointer not belonging to any partition");
486 OS << "Partition " << Index++ << " (" << &P << "):\n";
515 /// \brief Mapping from Instruction to partition Id. If the instruction
626 // with unsafe dependences into "cyclic" partition otherwise put each store
627 // in its own "non-cyclic" partition (we'll merge these later).
631 // included in the same cyclic partition as the dependent operations. This
641 // we just keep assigning to the same cyclic partition until
664 // partition uses a load we will merge this partition with the original
665 // partition of the load that we set up in the previous loop (see
687 // partition that we set up in the MemoryInstructionDependences loop.
730 // Create identical copies of the original loop for each partition and hook
735 // partition.
790 /// \brief Filter out checks between pointers from the same partition.
792 /// \p PtrToPartition contains the partition number for pointers. Partition