Home | History | Annotate | Download | only in Vectorize

Lines Matching refs:Stores

10 // stores that can be put together into vector-stores. Next, it attempts to
618 // Check if it is safe to sink the loads or the stores.
767 // Check if the stores are consecutive or of we need to swizzle them.
776 DEBUG(dbgs() << "SLP: added a vector of stores.\n");
891 // We know that we can merge the stores. Calculate the cost.
907 // Don't vectorize tiny trees. Small load/store chains or consecutive stores
1599 // Vectorize trees that end at stores.
1602 DEBUG(dbgs() << "SLP: Found " << count << " stores to vectorize.\n");
1633 /// object. We sort the stores to their base objects to reduce the cost of the
1634 /// quadratic search on the stores. TODO: We can further reduce this cost
1648 /// \brief Vectorize the stores that were collected in StoreRefs.
1658 bool vectorizeStores(ArrayRef<StoreInst *> Stores, int costThreshold,
1681 DEBUG(dbgs() << "SLP: Analyzing " << VF << " stores at offset " << i
1703 bool SLPVectorizer::vectorizeStores(ArrayRef<StoreInst *> Stores,
1709 // stores that we vectorized so that we don't visit the same store twice.
1713 // Do a quadratic search on all of the given stores and find
1714 // all of the pairs of stores that follow each other.
1715 for (unsigned i = 0, e = Stores.size(); i < e; ++i) {
1720 if (R.isConsecutiveAccess(Stores[i], Stores[j])) {
1721 Tails.insert(Stores[j]);
1722 Heads.insert(Stores[i]);
1723 ConsecutiveChain[Stores[i]] = Stores[j];
1728 // For stores that start but don't end a link in the chain:
1749 // Mark the vectorized stores so that we don't vectorize them again.
1941 // Process the stores in chunks of 16.