Lines Matching refs:Offsets
80 /// Offsets[i] describes the offset of Elems[i] within the constant. The
82 /// is no overlap: Offsets[i+1] >= Offsets[i] + getSize(Elemes[i]).
88 llvm::SmallVector<CharUnits, 32> Offsets;
104 ArrayRef<CharUnits> Offsets,
133 return buildFrom(CGM, Elems, Offsets, CharUnits::Zero(), Size,
155 Offsets.push_back(Size);
158 Offsets.push_back(Offset);
177 replace(Offsets, *FirstElemToReplace, *LastElemToReplace, {Offset});
286 /// Returns a position within Elems and Offsets such that all elements
292 return Offsets.size();
295 auto FirstAfterPos = llvm::upper_bound(Offsets, Pos);
296 if (FirstAfterPos == Offsets.begin())
300 size_t LastAtOrBeforePosIndex = FirstAfterPos - Offsets.begin() - 1;
301 if (Offsets[LastAtOrBeforePosIndex] == Pos)
305 if (Offsets[LastAtOrBeforePosIndex] +
321 CharUnits Offset = Offsets[Index];
336 Offsets, Index, Index + 1,
344 replace(Offsets, Index, Index + 1,
364 replace(Offsets, Index, Index + 1,
377 replace(Offsets, Index, Index + 1, {Offset, Hint});
384 replace(Offsets, Index, Index + 1, {});
403 ArrayRef<CharUnits> Offsets, CharUnits StartOffset, CharUnits Size,
410 auto Offset = [&](size_t I) { return Offsets[I] - StartOffset; };
537 if (Length == 1 && Offsets[First] == Offset &&
550 ArrayRef(Offsets).slice(First, Length), Offset, getSize(DesiredTy),
553 replace(Offsets, First, Last, {Offset});