Lines Matching full:bucket
36 // The Bucket class holds the struct fields we're trying to fill to a
38 class Bucket {
43 virtual ~Bucket() = default;
54 void Bucket::addField(FieldDecl *Field, int FieldSize) {
59 struct BitfieldRunBucket : public Bucket {
68 SmallVector<std::unique_ptr<Bucket>, 16> Buckets;
70 // The current bucket of fields that we are trying to fill to a cache-line.
71 std::unique_ptr<Bucket> CurrentBucket;
73 // The current bucket containing the run of adjacent bitfields to ensure they
77 // Tracks the number of fields that we failed to fit to the current bucket,
83 // that they can't fit in our current bucket, and we need to start a new
90 // Take the first field that needs to be put in a bucket.
111 // If we don't have a bucket, make one.
113 CurrentBucket = std::make_unique<Bucket>();
117 std::unique_ptr<Bucket> OverSized = std::make_unique<Bucket>();
129 // If it's now full, tie off the bucket.
135 // We can't fit it in our current bucket. Move to the end for processing
143 // Done processing the fields awaiting a bucket.
145 // If we were filling a bucket, tie it off.
149 // If we were processing a bitfield run bucket, tie it off.
157 for (const std::unique_ptr<Bucket> &B : Buckets) {