Lines Matching defs:Slice

523 class Slice {
535 Slice() = default;
537 Slice(uint64_t BeginOffset, uint64_t EndOffset, Use *U, bool IsSplittable)
558 bool operator<(const Slice &RHS) const {
571 friend LLVM_ATTRIBUTE_UNUSED bool operator<(const Slice &LHS,
576 const Slice &RHS) {
580 bool operator==(const Slice &RHS) const {
584 bool operator!=(const Slice &RHS) const { return !operator==(RHS); }
608 using iterator = SmallVectorImpl<Slice>::iterator;
614 using const_iterator = SmallVectorImpl<Slice>::const_iterator;
629 void insert(ArrayRef<Slice> NewSlices) {
693 /// slices before the splittable ones. See the Slice inner class for more
695 SmallVector<Slice, 8> Slices;
743 SmallVector<Slice *, 4> SplitTails;
790 ArrayRef<Slice *> splitSliceTails() const { return SplitTails; }
848 [&](Slice *S) { return S->endOffset() <= P.EndOffset; });
850 [&](Slice *S) {
855 [&](Slice *S) {
874 for (Slice &S : P)
1078 AS.Slices.push_back(Slice(BeginOffset, EndOffset, U, IsSplittable));
1227 Slice &PrevP = AS.Slices[PrevIdx];
1431 llvm::erase_if(Slices, [](const Slice &S) { return S.isDead(); });
2044 static bool isVectorPromotionViableForSlice(Partition &P, const Slice &S,
2131 for (const Slice &S : P)
2135 for (const Slice *S : P.splitSliceTails())
2318 for (const Slice &S : P) {
2358 static bool isIntegerWideningViableForSlice(const Slice &S,
2479 for (const Slice &S : P)
2484 for (const Slice *S : P.splitSliceTails())
4372 Slice *S;
4392 for (Slice &S : P) {
4455 for (Slice *S : P.splitSliceTails()) {
4538 SmallVector<Slice, 4> NewSlices;
4596 Slice(BaseOffset + PartOffset, BaseOffset + PartOffset + PartSize,
4694 "Slice size should always match load size exactly!");
4755 Slice(BaseOffset + PartOffset, BaseOffset + PartOffset + PartSize,
4810 llvm::erase_if(AS, [](const Slice &S) { return S.isDead(); });
4938 for (Slice *S : P.splitSliceTails()) {
4942 for (Slice &S : P) {
5286 for (Slice &S : AS)
5291 for (Slice &S : AS) {
5308 for (Slice &S : AS) {