Lines Matching defs:Nodes
79 void BalancedPartitioning::run(std::vector<BPFunctionNode> &Nodes) const {
83 Nodes.size(), Config.SplitDepth, Config.IterationsPerSplit));
92 for (unsigned I = 0; I < Nodes.size(); I++)
93 Nodes[I].InputOrderIndex = I;
95 auto NodesRange = llvm::make_range(Nodes.begin(), Nodes.end());
113 void BalancedPartitioning::bisect(const FunctionNodeRange Nodes,
117 unsigned NumNodes = std::distance(Nodes.begin(), Nodes.end());
121 llvm::sort(Nodes, [](const auto &L, const auto &R) {
124 for (auto &N : Nodes)
138 split(Nodes, LeftBucket);
140 runIterations(Nodes, LeftBucket, RightBucket, RNG);
144 llvm::partition(Nodes, [&](auto &N) { return N.Bucket == LeftBucket; });
145 unsigned MidOffset = Offset + std::distance(Nodes.begin(), NodesMid);
147 auto LeftNodes = llvm::make_range(Nodes.begin(), NodesMid);
148 auto RightNodes = llvm::make_range(NodesMid, Nodes.end());
167 void BalancedPartitioning::runIterations(const FunctionNodeRange Nodes,
171 unsigned NumNodes = std::distance(Nodes.begin(), Nodes.end());
173 for (auto &N : Nodes)
178 for (auto &N : Nodes)
185 for (auto &N : Nodes)
191 for (auto &N : Nodes) {
204 runIteration(Nodes, LeftBucket, RightBucket, Signatures, RNG);
210 unsigned BalancedPartitioning::runIteration(const FunctionNodeRange Nodes,
235 for (auto &N : Nodes) {
303 void BalancedPartitioning::split(const FunctionNodeRange Nodes,
305 unsigned NumNodes = std::distance(Nodes.begin(), Nodes.end());
306 auto NodesMid = Nodes.begin() + (NumNodes + 1) / 2;
308 std::nth_element(Nodes.begin(), NodesMid, Nodes.end(), [](auto &L, auto &R) {
312 for (auto &N : llvm::make_range(Nodes.begin(), NodesMid))
314 for (auto &N : llvm::make_range(NodesMid, Nodes.end()))