Lines Matching defs:bindings
428 // we only need to encode the differences between bindings. Hence the use of
555 // Non-weak bindings need to have their dylib ordinal encoded as well.
591 // Organize the bindings so we can encoded them with fewer opcodes.
593 // First, all bindings for a given symbol should be grouped together.
597 // Within each group, we sort the bindings by address. Since bindings are
599 // sorting by address alone ensures that bindings for the same segment / section
611 std::vector<BindingEntry> &bindings = p.second;
612 llvm::sort(bindings, [](const BindingEntry &a, const BindingEntry &b) {
634 // subsequent opcodes only need to encode the differences between bindings.
642 std::vector<BindingEntry> &bindings = p.second;
654 for (const BindingEntry &b : bindings)
683 std::vector<BindingEntry> &bindings = p.second;
688 for (const BindingEntry &b : bindings)
2294 auto [it, inserted] = bindings.insert(
2295 {{sym, outlineAddend}, static_cast<uint32_t>(bindings.size())});
2310 auto it = bindings.find({sym, outlineAddend});
2311 assert(it != bindings.end() && "binding not found in the imports table");
2399 header->imports_count = bindings.size();
2433 for (auto [import, idx] : bindings) {
2442 for (auto [import, idx] : bindings) {
2461 bool needsLargeOrdinal = any_of(bindings, [](const auto &p) {
2510 size += importEntrySize(importFormat) * bindings.size();