Lines Matching full:begin
65 void SwiftAggLowering::addTypedData(QualType type, CharUnits begin) {
70 addTypedData(recType->getDecl(), begin);
82 addTypedData(eltType, begin + i * eltSize);
90 addTypedData(eltLLVMType, begin, begin + eltSize);
91 addTypedData(eltLLVMType, begin + eltSize, begin + 2 * eltSize);
96 addOpaqueData(begin, begin + CGM.getContext().getTypeSizeInChars(type));
104 addTypedData(atomicType->getValueType(), begin);
109 addOpaqueData(begin + valueSize, begin + atomicSize);
116 addTypedData(llvmType, begin);
120 void SwiftAggLowering::addTypedData(const RecordDecl *record, CharUnits begin) {
121 addTypedData(record, begin, CGM.getContext().getASTRecordLayout(record));
124 void SwiftAggLowering::addTypedData(const RecordDecl *record, CharUnits begin,
130 addBitFieldData(field, begin, 0);
132 addTypedData(field->getType(), begin);
147 addTypedData(CGM.Int8PtrTy, begin);
155 addTypedData(baseRecord, begin + layout.getBaseClassOffset(baseRecord));
160 addTypedData(CGM.Int8PtrTy, begin + layout.getVBPtrOffset());
168 addBitFieldData(field, begin, fieldOffsetInBits);
171 begin + CGM.getContext().toCharUnitsFromBits(fieldOffsetInBits));
180 addTypedData(baseRecord, begin + layout.getVBaseClassOffset(baseRecord));
208 void SwiftAggLowering::addTypedData(llvm::Type *type, CharUnits begin) {
210 addTypedData(type, begin, begin + getTypeStoreSize(CGM, type));
214 CharUnits begin, CharUnits end) {
216 assert(getTypeStoreSize(CGM, type) == end - begin);
221 legalizeVectorType(CGM, end - begin, vecTy, componentTys);
228 assert(componentSize < end - begin);
229 addLegalTypedData(componentTy, begin, begin + componentSize);
230 begin += componentSize;
233 return addLegalTypedData(componentTys.back(), begin, end);
239 return addOpaqueData(begin, end);
243 return addLegalTypedData(type, begin, end);
247 CharUnits begin, CharUnits end) {
249 if (!begin.isZero() && !begin.isMultipleOf(getNaturalAlignment(CGM, type))) {
253 auto split = splitLegalVectorType(CGM, end - begin, vecTy);
257 auto eltSize = (end - begin) / numElts;
260 addLegalTypedData(eltTy, begin, begin + eltSize);
261 begin += eltSize;
263 assert(begin == end);
267 return addOpaqueData(begin, end);
270 addEntry(type, begin, end);
274 CharUnits begin, CharUnits end) {
278 assert(!type || begin.isMultipleOf(getNaturalAlignment(CGM, type)));
281 if (Entries.empty() || Entries.back().End <= begin) {
282 Entries.push_back({begin, end, type});
290 if (Entries[index - 1].End <= begin) break;
296 if (Entries[index].Begin >= end) {
300 Entries.insert(Entries.begin() + index, {begin, end, type});
309 if (Entries[index].Begin == begin && Entries[index].End == end) {
339 (end - begin) / cast<llvm::FixedVectorType>(vecTy)->getNumElements();
344 addEntry(eltTy, begin, begin + eltSize);
345 begin += eltSize;
347 assert(begin == end);
362 if (begin < Entries[index].Begin) {
363 Entries[index].Begin = begin;
364 assert(index == 0 || begin >= Entries[index - 1].End);
373 if (index == Entries.size() - 1 || end <= Entries[index + 1].Begin) {
379 Entries[index].End = Entries[index + 1].Begin;
408 Entries.insert(Entries.begin() + index + 1, numElts - 1, StorageEntry());
410 CharUnits begin = Entries[index].Begin;
414 Entries[idx].Begin = begin;
415 Entries[idx].End = begin + eltSize;
416 begin += eltSize;
462 if (!areBytesInSameUnit(first.End - CharUnits::One(), second.Begin,
488 Entries[i - 1].End = Entries[i].Begin;
517 auto begin = orig[i].Begin;
521 end == orig[i + 1].Begin) {
529 // storage unit containing 'begin' that contains all the bytes in
531 CharUnits localBegin = begin;
553 begin = localEnd;
554 } while (begin != end);
565 callback(entry.Begin, entry.End, entry.Type);
585 if (entry.Begin != lastEnd) {
586 auto paddingSize = entry.Begin - lastEnd;
595 if (!packed && !entry.Begin.isMultipleOf(CharUnits::fromQuantity(
601 lastEnd = entry.Begin + getTypeAllocSize(CGM, entry.Type);