Lines Matching full:chain

22 // in the ExtTSP score, which models how i-cache "friendly" a specific chain is.
23 // A pair of chains giving the maximum gain is merged into a new chain. The
24 // procedure stops when there is only one chain left, or when merging does not
101 // The maximum size of a chain created by the algorithm. The size is bounded
104 MaxChainSize("ext-tsp-max-chain-size", cl::ReallyHidden, cl::init(512),
105 cl::desc("The maximum size of a chain to create"));
107 // The maximum size of a chain for splitting. Larger values of the threshold
110 "ext-tsp-chain-split-threshold", cl::ReallyHidden, cl::init(128),
111 cl::desc("The maximum size of a chain to apply splitting"));
126 CDMaxChainSize("cdsort-max-chain-size", cl::ReallyHidden,
127 cl::desc("The maximum size of a chain to create"));
175 /// A type of merging two chains, X and Y. The former chain is split into
239 // The index of the node in the current chain.
245 // The current chain of the node.
247 // The offset of the node in the current chain.
281 /// A chain (ordered sequence) of nodes in the graph.
307 for (const auto &[Chain, ChainEdge] : Edges) {
308 if (Chain == Other)
331 // Update the chain's data.
351 // Unique chain identifier.
353 // Cached ext-tsp score for the chain.
355 // The total execution count of the chain. Since the execution count of
358 // The total size of the chain.
360 // Nodes of the chain.
432 // Source chain.
434 // Destination chain.
474 // Update edges adjacent to chain Other.
559 /// Otherwise, the first chain is cut into two sub-chains at the offset,
564 // Split the first chain, X, into X1 and X2.
572 // Construct a new chain from the three existing ones.
585 llvm_unreachable("unexpected chain merge type");
662 // Create a chain.
669 // Initialize chain edges.
754 // Get candidates for merging with the current chain.
759 // Skip the merge if the combined chain violates the maximum specified
770 "incorrectly computed chain densities");
908 // Do not split the chain along a fall-through jump. One of the two
942 // The gain for the new chain.
948 /// Merge chain From into chain Into, update the list of active chains,
952 assert(Into != From && "a chain cannot be merged with itself");
963 // Update cached ext-tsp score for the new chain.
971 // Remove the chain from the list of active chains.
983 for (ChainT &Chain : AllChains) {
984 if (!Chain.Nodes.empty())
985 SortedChains.push_back(&Chain);
995 // Compare by density and break ties by chain identifiers.
1003 for (const ChainT *Chain : SortedChains)
1004 for (NodeT *Node : Chain->Nodes)
1103 // Create chain.
1108 // Initialize chain edges.
1285 // Cache misses on the merged chain
1321 /// Merge chain From into chain Into, update the list of active chains,
1325 assert(Into != From && "a chain cannot be merged with itself");
1342 for (ChainT &Chain : AllChains) {
1343 if (!Chain.Nodes.empty()) {
1344 SortedChains.push_back(&Chain);
1348 for (NodeT *Node : Chain.Nodes) {
1352 assert(Size > 0 && "a chain of zero size");
1353 ChainDensity[&Chain] = ExecutionCount / Size;
1362 // Compare by density and break ties by chain identifiers.
1370 for (const ChainT *Chain : SortedChains)
1371 for (NodeT *Node : Chain->Nodes)