Lines Matching refs:Entries

279   if (Entries.empty() || Entries.back().End <= begin) {
280 Entries.push_back({begin, end, type});
285 // TODO: do a binary search if Entries is big enough for it to matter.
286 size_t index = Entries.size() - 1;
288 if (Entries[index - 1].End <= begin) break;
294 if (Entries[index].Begin >= end) {
298 Entries.insert(Entries.begin() + index, {begin, end, type});
307 if (Entries[index].Begin == begin && Entries[index].End == end) {
309 if (Entries[index].Type == type) return;
312 if (Entries[index].Type == nullptr) {
315 Entries[index].Type = nullptr;
321 if (auto entryType = getCommonType(Entries[index].Type, type)) {
322 Entries[index].Type = entryType;
327 Entries[index].Type = nullptr;
350 if (Entries[index].Type && Entries[index].Type->isVectorTy()) {
357 Entries[index].Type = nullptr;
360 if (begin < Entries[index].Begin) {
361 Entries[index].Begin = begin;
362 assert(index == 0 || begin >= Entries[index - 1].End);
367 while (end > Entries[index].End) {
368 assert(Entries[index].Type == nullptr);
371 if (index == Entries.size() - 1 || end <= Entries[index + 1].Begin) {
372 Entries[index].End = end;
377 Entries[index].End = Entries[index + 1].Begin;
383 if (Entries[index].Type == nullptr)
387 if (Entries[index].Type->isVectorTy() &&
388 end < Entries[index].End) {
393 Entries[index].Type = nullptr;
400 auto vecTy = cast<llvm::VectorType>(Entries[index].Type);
401 auto split = splitLegalVectorType(CGM, Entries[index].getWidth(), vecTy);
406 Entries.insert(Entries.begin() + index + 1, numElts - 1, StorageEntry());
408 CharUnits begin = Entries[index].Begin;
410 Entries[index].Type = eltTy;
411 Entries[index].Begin = begin;
412 Entries[index].End = begin + eltSize;
468 if (Entries.empty()) {
480 bool hasOpaqueEntries = (Entries[0].Type == nullptr);
481 for (size_t i = 1, e = Entries.size(); i != e; ++i) {
482 if (shouldMergeEntries(Entries[i - 1], Entries[i], chunkSize)) {
483 Entries[i - 1].Type = nullptr;
484 Entries[i].Type = nullptr;
485 Entries[i - 1].End = Entries[i].Begin;
488 } else if (Entries[i].Type == nullptr) {
500 // Okay, move the entries to a temporary and rebuild Entries.
501 auto orig = std::move(Entries);
502 assert(Entries.empty());
507 Entries.push_back(orig[i]);
547 Entries.push_back({unitBegin, unitEnd, entryTy});
561 for (auto &entry : Entries) {
572 if (Entries.empty()) {
581 for (auto &entry : Entries) {
610 for (auto &entry : Entries) {
618 } else if (Entries.size() == 1) {
619 unpaddedType = Entries[0].Type;
629 if (Entries.empty()) return false;
632 if (Entries.size() == 1) {
634 Entries.back().Type,
639 componentTys.reserve(Entries.size());
640 for (auto &entry : Entries) {