Home | History | Annotate | Download | only in Scalar

Lines Matching full:slice

114 /// \brief A used slice of an alloca.
116 /// This structure represents a slice of an alloca used by some instruction. It
120 class Slice {
127 /// \brief Storage for both the use of this slice and whether it can be
132 Slice() : BeginOffset(), EndOffset() {}
133 Slice(uint64_t BeginOffset, uint64_t EndOffset, Use *U, bool IsSplittable)
154 bool operator<(const Slice &RHS) const {
163 friend LLVM_ATTRIBUTE_UNUSED bool operator<(const Slice &LHS,
168 const Slice &RHS) {
172 bool operator==(const Slice &RHS) const {
176 bool operator!=(const Slice &RHS) const { return !operator==(RHS); }
182 template <> struct isPodLike<Slice> {
208 typedef SmallVectorImpl<Slice>::iterator iterator;
212 typedef SmallVectorImpl<Slice>::const_iterator const_iterator;
273 /// slices before the splittable ones. See the Slice inner class for more
275 SmallVector<Slice, 8> Slices;
279 /// Note that these are not separated by slice. This is because we expect an
312 /// of an alloca and making a slice for each load and store at each offset.
369 S.Slices.push_back(Slice(BeginOffset, EndOffset, U, IsSplittable));
494 Slice &PrevP = S.Slices[PrevIdx];
513 "Map index doesn't point back to a slice with this user.");
674 std::mem_fun_ref(&Slice::isDead)),
693 << " slice #" << (I - begin())
1469 /// \brief Test whether the given slice use can be promoted to a vector.
1472 /// for a single slice.
1477 // First validate the slice offsets.
1582 /// \brief Test whether a slice of an alloca is valid for integer widening.
1585 /// test below on a single slice of the alloca.
1831 /// \brief Visitor to rewrite instructions using p particular slice of an alloca
1868 // The offset of the slice currently being rewritten.
1876 // the slice of the alloca.
1934 /// \brief Query whether this slice is used by speculatable instructions after
1937 /// These instructions (PHIs and Selects currently) require the alloca slice
1939 /// this iteration. This is distinct from a slice which is unpromotable for
1943 /// current slice.
3170 // first slice and will extend through its end.
3174 // unsplittable slice.
3191 // encountering an unsplittable slice.
3222 // the next slice.
3228 // Even if we have split slices, if the next slice is splittable and the