Lines Matching refs:nodes
72 /// value can change when linked nodes change, but convergence is very fast
97 // Undecided nodes (Value==0) go on the stack.
151 bool update(const Node nodes[]) {
156 if (nodes[I->second].Value == -1)
158 else if (nodes[I->second].Value == 1)
186 assert(!nodes && "Leaking node array");
187 nodes = new Node[bundles->getNumBundles()];
202 delete[] nodes;
203 nodes = 0;
211 nodes[n].clear();
223 nodes[n].BiasP = 0;
224 nodes[n].BiasN = (BlockFrequency::getEntryFrequency() / 16);
240 nodes[ib].addBias(Freq, I->Entry);
247 nodes[ob].addBias(Freq, I->Exit);
263 nodes[ib].addBias(Freq, PrefSpill);
264 nodes[ob].addBias(Freq, PrefSpill);
280 if (nodes[ib].Links.empty() && !nodes[ib].mustSpill())
282 if (nodes[ob].Links.empty() && !nodes[ob].mustSpill())
285 nodes[ib].addLink(ob, Freq);
286 nodes[ob].addLink(ib, Freq);
294 nodes[n].update(nodes);
297 if (nodes[n].mustSpill())
299 if (!nodes[n].Links.empty())
301 if (nodes[n].preferReg())
307 /// iterate - Repeatedly update the Hopfield nodes until stability or the
309 /// @param Linked - Numbers of linked nodes that need updating.
311 // First update the recently positive nodes. They have likely received new
314 nodes[RecentPositive.pop_back_val()].update(nodes);
321 // linked nodes with sequential numbers. By scanning the linked nodes
331 if (nodes[n].update(nodes)) {
333 if (nodes[n].preferReg())
345 if (nodes[n].update(nodes)) {
347 if (nodes[n].preferReg())
372 if (!nodes[n].preferReg()) {