Lines Matching +full:erase +full:- +full:size
1 //===--- Randstruct.cpp ---------------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 //===----------------------------------------------------------------------===//
39 // cache-line.
42 int Size = 0; member in __anonce06ef4d0111::Bucket
50 return Size + FieldSize <= CACHE_LINE; in canFit()
53 bool full() const { return Size >= CACHE_LINE; } in full()
57 Size += FieldSize; in addField()
69 // All of the Buckets produced by best-effort cache-line algorithm. in randomizeStructureLayoutImpl()
72 // The current bucket of fields that we are trying to fill to a cache-line. in randomizeStructureLayoutImpl()
87 if (Skipped >= FieldsOut.size()) { in randomizeStructureLayoutImpl()
96 if (FD->isBitField() && !FD->isZeroLengthBitField(Context)) { in randomizeStructureLayoutImpl()
103 CurrentBitfieldRun->addField(FD, /*FieldSize is irrelevant here*/ 1); in randomizeStructureLayoutImpl()
104 FieldsOut.erase(FieldIter); in randomizeStructureLayoutImpl()
117 uint64_t Width = Context.getTypeInfo(FD->getType()).Width; in randomizeStructureLayoutImpl()
120 OverSized->addField(FD, Width); in randomizeStructureLayoutImpl()
121 FieldsOut.erase(FieldIter); in randomizeStructureLayoutImpl()
127 if (CurrentBucket->canFit(Width)) { in randomizeStructureLayoutImpl()
128 CurrentBucket->addField(FD, Width); in randomizeStructureLayoutImpl()
129 FieldsOut.erase(FieldIter); in randomizeStructureLayoutImpl()
132 if (CurrentBucket->full()) { in randomizeStructureLayoutImpl()
141 FieldsOut.erase(FieldIter); in randomizeStructureLayoutImpl()
160 llvm::SmallVectorImpl<FieldDecl *> &RandFields = B->fields(); in randomizeStructureLayoutImpl()
161 if (!B->isBitfieldRun()) in randomizeStructureLayoutImpl()
181 for (Decl *D : RD->decls()) { in randomizeStructureLayout()
194 // Struct might end with a flexible array or an array of size 0 or 1, in randomizeStructureLayout()
197 RD->hasFlexibleArrayMember() ? RandomizedFields.pop_back_val() : nullptr; in randomizeStructureLayout()
200 dyn_cast<ConstantArrayType>(RandomizedFields.back()->getType())) in randomizeStructureLayout()
201 if (CA->getSize().sle(2)) in randomizeStructureLayout()
206 Context.getLangOpts().RandstructSeed + RD->getNameAsString(); in randomizeStructureLayout()
224 assert(TotalNumFields == FinalOrdering.size() && in randomizeStructureLayout()