Lines Matching defs:Weights
159 Weights.push_back(Weight(Type, Node, Amount));
178 static void combineWeightsBySorting(WeightList &Weights) {
180 llvm::sort(Weights, [](const Weight &L, const Weight &R) {
185 WeightList::iterator O = Weights.begin();
186 for (WeightList::const_iterator I = O, L = O, E = Weights.end(); I != E;
196 Weights.erase(O, Weights.end());
199 static void combineWeightsByHashing(WeightList &Weights) {
203 HashTable Combined(NextPowerOf2(2 * Weights.size()));
204 for (const Weight &W : Weights)
208 if (Weights.size() == Combined.size())
212 Weights.clear();
213 Weights.reserve(Combined.size());
215 Weights.push_back(I.second);
218 static void combineWeights(WeightList &Weights) {
220 if (Weights.size() > 128) {
221 combineWeightsByHashing(Weights);
225 combineWeightsBySorting(Weights);
238 if (Weights.empty())
242 if (Weights.size() > 1)
243 combineWeights(Weights);
246 if (Weights.size() == 1) {
248 Weights.front().Amount = 1;
266 assert(Total == std::accumulate(Weights.begin(), Weights.end(), UINT64_C(0),
279 for (Weight &W : Weights) {
456 for (const Weight &W : Dist.Weights) {
841 for (const Weight &W : Dist.Weights) {
852 for (const Weight &W : Dist.Weights) {