Home | History | Annotate | Download | only in Hexagon

Lines Matching refs:Nodes

60   // Numbering map for gep nodes. Used to keep track of ordering for
61 // gep nodes.
133 NodeVect Nodes;
355 Nodes.push_back(N);
370 Nodes.push_back(Nx);
394 // The creation of gep nodes requires DT-traversal. When processing a GEP
409 DEBUG(dbgs() << "Gep nodes after initial collection:\n" << Nodes);
414 void invert_find_roots(const NodeVect &Nodes, NodeChildrenMap &NCM,
417 for (const_iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) {
428 void nodes_for_root(GepNode *Root, NodeChildrenMap &NCM, NodeSet &Nodes) {
431 Nodes.insert(Root);
440 Nodes.insert(CF->second.begin(), CF->second.end());
478 // Don't cache the result for nodes with different hashes. The hash
494 // If the Root flag has different values, the nodes are different.
495 // If both nodes are root nodes, but their base pointers differ,
501 // Here the root flags are identical, and for root nodes the
502 // base pointers are equal, so the root nodes are equal.
503 // For non-root nodes, compare their parent nodes.
514 // The essence of this commoning is finding gep nodes that are equal.
515 // To do this we need to compare all pairs of nodes. To save time,
516 // first, partition the set of all nodes into sets of potentially equal
517 // nodes, and then compare pairs from within each partition.
521 for (NodeVect::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) {
527 // Compute the equivalence relation for the gep nodes. Use two caches,
611 for (NodeVect::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) {
626 DEBUG(dbgs() << "Gep nodes after commoning:\n" << Nodes);
628 // Finally, erase the nodes that are no longer used.
630 for (NodeVect::iterator I = Nodes.begin(), E = Nodes.end(); I != E; ++I) {
643 NodeVect::iterator NewE = std::remove_if(Nodes.begin(), Nodes.end(),
645 Nodes.resize(std::distance(Nodes.begin(), NewE));
647 DEBUG(dbgs() << "Gep nodes after post-commoning cleanup:\n" << Nodes);
792 // Avoid putting nodes into empty blocks.
890 // For nodes that are not in the main path of the containing loop (i.e.
907 // Recursively compute the locations of all children nodes.
955 Nodes.push_back(NewN);
1003 // Collect all used nodes together with the uses from loads and stores,
1005 NodeToUsesMap FNs; // Foldable nodes.
1039 DEBUG(dbgs() << "Nodes with foldable users:\n" << FNs);
1052 // of root nodes.
1055 invert_find_roots(Nodes, NCM, Roots);
1058 // the locations of the child nodes.
1078 // Such a refinement could include splitting the nodes if they are placed
1088 << " for nodes:\n" << NA);
1159 DEBUG(dbgs() << "Nodes before materialization:\n" << Nodes << '\n');
1163 // "parent" relation between nodes.
1164 invert_find_roots(Nodes, NCM, Roots);
1171 NodeVect NA; // Nodes to assemble.
1172 // Append to NA all child nodes up to (and including) the first child
1180 // happen for nodes created from dead GEPs).
1283 Nodes.clear();