Lines Matching defs:sections

9 /// The file is responsible for sorting sections using LLVM call graph profile
10 /// data by placing frequently executed code sections together. The goal of the
12 /// arranging code sections so that i-TLB misses and i-cache misses are reduced.
15 /// iteratively merges "chains" (ordered lists) of input sections which will be
64 /// code sections such that page table and i-cache misses are minimized.
68 /// * An ordered list of input sections which are laid out as a unit. At the
82 /// * Sort input sections by weight
97 std::vector<const InputSectionBase *> sections;
121 sections.push_back(isec);
133 // Ignore edges between input sections belonging to different output
134 // sections. This is done because otherwise we would end up with clusters
135 // containing input sections that can't actually be placed adjacently in the
137 // would also end up moving input sections in other output sections without
240 orderMap[sections[i]] = curOrder++;
260 for (Symbol *sym : sections[i]->file->getSymbols())
263 if (sections[i] == d->section)
274 // Sort sections by the profile data using the Cache-Directed Sort algorithm.
276 // executed code sections together.
282 SmallVector<const InputSectionBase *, 0> sections;
286 auto res = secToTargetId.try_emplace(inSec, sections.size());
289 sections.push_back(inSec);
300 // Ignore edges between input sections belonging to different sections.
330 orderMap[sections[secIdx]] = curOrder++;
335 // Sort sections by the profile data provided by --callgraph-profile-file.
337 // This first builds a call graph based on the profile data then merges sections