Home | History | Annotate | Download | only in Vectorize

Lines Matching refs:Accesses

127 /// accesses in code like the following.
526 /// will change the order of memory accesses in a way that will change the
771 /// Looks for accesses like "a[i * StrideA]" where "StrideA" is loop
3848 /// \brief Analyses memory accesses in a loop.
3858 /// \brief Set of potential dependent memory accesses.
3867 Accesses.insert(MemAccessInfo(Ptr, false));
3874 Accesses.insert(MemAccessInfo(Ptr, true));
3884 /// \brief Goes over all memory accesses, checks whether a RT check is needed
3885 /// and builds sets of dependent accesses.
3909 /// Set of all accesses.
3910 PtrAccessSet Accesses;
3918 /// Set of accesses that need a further dependence check.
3929 /// Sets of potentially dependent accesses - members of one set share an
3969 // Accesses within the same set don't need a runtime check.
3973 for (PtrAccessSet::iterator AI = Accesses.begin(), AE = Accesses.end();
3980 if (!IsWrite && Accesses.count(MemAccessInfo(Ptr, true)))
4058 PtrAccessSet &S = UseDeferred ? DeferredAccesses : Accesses;
4137 /// \brief Checks memory dependences among accesses to the same underlying
4145 /// on the program order of memory accesses to determine their safety.
4146 /// At the moment we will only deem accesses as safe for:
4167 /// * Zero distances and all accesses have the same size.
4182 Accesses[MemAccessInfo(Ptr, true)].push_back(AccessIdx);
4191 Accesses[MemAccessInfo(Ptr, false)].push_back(AccessIdx);
4196 /// \brief Check whether the dependencies between the accesses are safe.
4203 /// the accesses safely with.
4216 DenseMap<MemAccessInfo, std::vector<unsigned> > Accesses;
4232 /// accesses.
4238 /// absence of such can't be proved) between the two accesses. If there is a
4420 // Need consecutive accesses. We don't want to vectorize
4513 // Check accesses within this set.
4523 for (std::vector<unsigned>::iterator I1 = Accesses[*AI].begin(),
4524 I1E = Accesses[*AI].end(); I1 != I1E; ++I1)
4525 for (std::vector<unsigned>::iterator I2 = Accesses[*OI].begin(),
4526 I2E = Accesses[*OI].end(); I2 != I2E; ++I2) {
4549 // Holds all the different accesses in the loop.
4622 AccessAnalysis Accesses(DL, DependentAccesses);
4648 Accesses.addStore(Ptr);
4675 Accesses.addLoad(Ptr, IsReadOnlyPtr);
4687 Accesses.buildDependenceSets();
4688 bool NeedRTCheck = Accesses.isRTCheckNeeded();
4695 CanDoRT = Accesses.canCheckPtrAtRT(PtrRtCheck, NumComparisons, SE, TheLoop,
4728 if (Accesses.isDependencyCheckNeeded()) {
4731 DependentAccesses, Accesses.getDependenciesToCheck(), Strides);
4739 Accesses.resetDepChecks();
4744 CanDoRT = Accesses.canCheckPtrAtRT(PtrRtCheck, NumComparisons, SE,