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