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
98 std::vector<const InputSectionBase *> sections;
122 sections.push_back(isec);
134 // Ignore edges between input sections belonging to different output
135 // sections. This is done because otherwise we would end up with clusters
136 // containing input sections that can't actually be placed adjacently in the
138 // would also end up moving input sections in other output sections without
241 orderMap[sections[i]] = curOrder++;
262 for (Symbol *sym : sections[i]->file->getSymbols())
265 if (sections[i] == d->section)
276 // Sort sections by the profile data using the Cache-Directed Sort algorithm.
278 // executed code sections together.
285 SmallVector<const InputSectionBase *, 0> sections;
289 auto res = secToTargetId.try_emplace(inSec, sections.size());
292 sections.push_back(inSec);
303 // Ignore edges between input sections belonging to different sections.
333 orderMap[sections[secIdx]] = curOrder++;
338 // Sort sections by the profile data provided by --callgraph-profile-file.
340 // This first builds a call graph based on the profile data then merges sections