/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/ |
H A D | ProfiledCallGraph.h | 39 // Sort edges by callee names only since all edges to be compared are from 50 using edges = std::set<edge, ProfiledCallGraphEdgeComparer>; 51 using iterator = edges::iterator; 52 using const_iterator = edges::const_iterator; member 58 edges Edges; 74 // Trim edges with weight up to `IgnoreColdCallThreshold`. This aims 75 // for a more stable call graph with "determinstic" edges from run to run. 82 // BFS traverse the context profile trie to add call edges fo 59 edges Edges; global() member 158 auto &Edges = ProfiledFunctions[CallerName].Edges; global() variable 197 auto &Edges = Node.second.Edges; global() variable [all...] |
/freebsd/contrib/llvm-project/llvm/include/llvm/ADT/ |
H A D | DirectedGraph.h | 72 /// The node has a (possibly empty) list of outgoing edges. 80 explicit DGNode(EdgeType &E) : Edges() { Edges.insert(&E); } in DGNode() 83 explicit DGNode(const DGNode<NodeType, EdgeType> &N) : Edges(N.Edges) {} in DGNode() 84 DGNode(DGNode<NodeType, EdgeType> &&N) : Edges(std::move(N.Edges)) {} in DGNode() 87 Edges = N.Edges; 91 Edges = std::move(N.Edges); 104 const_iterator begin() const { return Edges.begin(); } in begin() 105 const_iterator end() const { return Edges.end(); } in end() 106 iterator begin() { return Edges.begin(); } in begin() 107 iterator end() { return Edges.end(); } in end() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/XRay/ |
H A D | Graph.h | 48 /// Usage Example Graph with weighted edges and vertices: 58 /// for(const auto &e : G.edges()){ 59 /// // Do something with the edges in the graph; 76 /// These objects are used to name edges and vertices in the graph. 85 /// This type is the value_type of all iterators which range over edges, 86 /// Determined by the Edges DenseMap. 99 /// The type used for storing the edges entering a vertex. Indexed by 101 /// where the incoming edges are, the EdgeIdentifiers are stored in an 112 EdgeMapT Edges; 171 /// A const iterator type for iterating through the set of edges enterin 355 EdgeView<false> edges() { return EdgeView<false>(*this); } edges() function 357 EdgeView<true> edges() const { return EdgeView<true>(*this); } edges() function [all...] |
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | LazyCallGraph.h | 15 /// edges in this call graph that do not correspond to a 'call' or 'invoke' 66 /// With the edges of this graph, the motivating constraint that we are 85 /// both the direct call edges and any direct call edges that might be formed 90 /// edges for functions. Walking "up" the graph can be done by looking at all 117 /// A class used to represent edges in the call graph. 119 /// The lazy call graph models both *call* edges and *reference* edges. Call 120 /// edges are much what you would expect, and exist when there is a 'call' or 121 /// 'invoke' instruction of some function. Reference edges are also tracked 123 /// through its operands) references a function. All call edges are 124 /// inherently reference edges, and so the reference graph forms a superset [all …]
|
H A D | BranchProbabilityInfo.h | 48 /// probabilities of other edges from the block. The probabilites of all edges 51 /// identify an edge, since we can have multiple edges from Src to Dst. 60 /// from this rule though. Probabilities for edges leading to "unreachable" 152 /// Get an edge's probability, relative to other out-edges of the Src. 155 /// (0%) and one (100%) of this edge executing, relative to other edges 163 /// It returns the sum of all probabilities for edges from Src to Dst. 170 /// Test if an edge is hot relative to other out-edges of the Src. 185 /// Set the raw probabilities for all edges from the given block. 199 /// Swap outgoing edges probabilities for \p Src with branch terminator 326 // Since we allow duplicate edges from one basic block to another, we use [all …]
|
H A D | CallGraph.h | 21 /// 1. All functions in the module without internal linkage will have edges 81 /// This node has edges to all external functions and those internal 85 /// This node has edges to it from all functions making indirect calls 146 /// functions (ie, there are no edges in it's CGN). The easiest way to do 171 /// in the call graph - reference or a call edge. Reference edges are not 173 /// set to `None`, while real call edges have instruction address in this 174 /// field. Therefore, all real call edges are expected to have a value in the 176 /// Reference edges, for example, are used for connecting broker function 225 /// Removes all edges from this CallGraphNode to any functions it 260 /// Removes all call edges fro [all...] |
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | ImmutableGraph.h | 11 /// implemented as two arrays: one containing nodes, and one containing edges. 14 /// 2. Operations on sets of nodes/edges are efficient, and representations of 15 /// those sets in memory are compact. For instance, a set of edges is 62 const Edge *Edges; variable 68 const Edge *edges_begin() const { return Edges; } in edges_begin() 69 // Nodes are allocated sequentially. Edges for a node are stored together. 70 // The end of this Node's edges is the beginning of the next node's edges. 73 const Edge *edges_end() const { return (this + 1)->Edges; } in edges_end() 74 ArrayRef<Edge> edges() const { in edges() function 80 ImmutableGraph(std::unique_ptr<Node[]> Nodes, std::unique_ptr<Edge[]> Edges, in ImmutableGraph() argument [all …]
|
H A D | X86LoadValueInjectionLoadHardening.cpp | 108 unsigned int *Edges, int *EdgeValues, 123 std::unique_ptr<Edge[]> Edges, size_type NodesSize, in MachineGadgetGraph() 125 : GraphT(std::move(Nodes), std::move(Edges), NodesSize, EdgesSize), in MachineGadgetGraph() 539 // Returns the number of remaining gadget edges that could not be eliminated 544 // Eliminate fences and CFG edges that ingress and egress the fence, as in elimMitigatedEdgesAndNodes() 546 for (const Edge &E : G.edges()) { in elimMitigatedEdgesAndNodes() 551 for (const Edge &DE : Dest->edges()) in elimMitigatedEdgesAndNodes() 557 // Find and eliminate gadget edges that have been mitigated. in elimMitigatedEdgesAndNodes() 561 if (llvm::none_of(RootN.edges(), MachineGadgetGraph::isGadgetEdge)) in elimMitigatedEdgesAndNodes() 570 for (const Edge &E : N->edges()) { in elimMitigatedEdgesAndNodes() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | DependenceGraphBuilder.cpp | 25 STATISTIC(TotalDefUseEdges, "Number of def-use edges created."); 26 STATISTIC(TotalMemoryEdges, "Number of memory dependence edges created."); 74 // Note: This algorithm tries to limit the number of edges out of the root in createAndConnectRootNode() 75 // node to some extent, but there may be redundant edges created depending on in createAndConnectRootNode() 78 // not result in minimal number of edges, this approach saves compile-time in createAndConnectRootNode() 79 // while keeping the number of edges in check. in createAndConnectRootNode() 100 // 2. Identify incoming edges incident to the nodes inside of the SCC and in createPiBlocks() 102 // 3. Identify outgoing edges from the nodes inside of the SCC to nodes in createPiBlocks() 103 // outside of it and reconnect them so that the edges are coming out of the in createPiBlocks() 132 // Build a set to speed up the lookup for edges whose targets in createPiBlocks() [all …]
|
H A D | LazyCallGraph.cpp | 42 EdgeIndexMap.try_emplace(&TargetN, Edges.size()); in insertEdgeInternal() 43 Edges.emplace_back(TargetN, EK); in insertEdgeInternal() 47 Edges[EdgeIndexMap.find(&TargetN)->second].setKind(EK); in setEdgeKind() 55 Edges[IndexMapI->second] = Edge(); in removeEdgeInternal() 60 static void addEdge(SmallVectorImpl<LazyCallGraph::Edge> &Edges, in addEdge() argument 63 if (!EdgeIndexMap.try_emplace(&N, Edges.size()).second) in addEdge() 67 Edges.emplace_back(LazyCallGraph::Edge(N, EK)); in addEdge() 71 assert(!Edges && "Must not have already populated the edges for this node!"); in populateSlow() 76 Edges = EdgeSequence(); in populateSlow() 82 // Find all the potential call graph edges in this function. We track both in populateSlow() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | SampleProfileInference.cpp | 79 /// where m is the number of edges, n is the number of vertices, and v(f) is the 83 /// The input is a set of edges with specified costs and capacities, and a pair 96 Edges = std::vector<std::vector<Edge>>(NodeCount, std::vector<Edge>()); in initialize() 107 // flow along its edges in run() 114 for (auto &Edge : Edges[Src]) { in run() 131 /// Multiple edges between a pair of nodes are allowed but self-edges 142 SrcEdge.RevEdgeIndex = Edges[Dst].size(); in addEdge() 149 DstEdge.RevEdgeIndex = Edges[Src].size(); in addEdge() 151 Edges[Src].push_back(SrcEdge); in addEdge() 152 Edges[Dst].push_back(DstEdge); in addEdge() [all …]
|
H A D | CodeLayout.cpp | 307 for (const auto &[Chain, ChainEdge] : Edges) { in merge() 315 auto It = Edges.begin(); in merge() 316 while (It != Edges.end()) { in merge() 318 Edges.erase(It); 326 Edges.push_back(std::make_pair(Other, Edge)); 347 Edges.clear(); 348 Edges.shrink_to_fit(); 362 // Adjacent chains and corresponding edges (lists of jumps). in appendJump() 363 std::vector<std::pair<ChainT *, ChainEdge *>> Edges; 367 /// When nodes are merged into chains, the edges ar in moveJumps() 338 std::vector<std::pair<ChainT *, ChainEdge *>> Edges; global() member [all...] |
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/PBQP/ |
H A D | Graph.h | 173 EdgeVector Edges; variable 189 EdgeEntry& getEdge(EdgeId EId) { return Edges[EId]; } in getEdge() 190 const EdgeEntry& getEdge(EdgeId EId) const { return Edges[EId]; } in getEdge() 212 Edges[EId] = std::move(E); in addConstructedEdge() 214 EId = Edges.size(); in addConstructedEdge() 215 Edges.push_back(std::move(E)); in addConstructedEdge() 263 : CurEId(CurEId), EndEId(G.Edges.size()), FreeEdgeIds(G.FreeEdgeIds) { in EdgeItr() 306 EdgeItr end() const { return EdgeItr(G.Edges.size(), G); } in end() 308 bool empty() const { return G.Edges.empty(); } in empty() 311 return G.Edges.size() - G.FreeEdgeIds.size(); in size() [all …]
|
/freebsd/contrib/llvm-project/llvm/utils/TableGen/GlobalISel/ |
H A D | GIMatchDag.h |
|
H A D | GIMatchTree.h |
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | SampleProfileLoaderBaseImpl.h | 271 /// Map edges to their computed weights. 280 /// Set of visited edges during propagation. 701 /// and increment the count of unknown edges. 704 /// \param NumUnknownEdges Current number of unknown edges. 721 /// Propagate weights through incoming/outgoing edges. 726 /// Similarly, if all the edges have a known count, we can calculate the 733 /// \returns True if new weights were assigned to edges or blocks. 738 LLVM_DEBUG(dbgs() << "\nPropagation through edges\n"); 743 // Visit all the predecessor and successor edges to determine 754 // First, visit all predecessor edges. [all …]
|
H A D | BasicBlockUtils.h | 203 /// *all* edges from TI to the specified successor will be merged into the same 205 /// instructions, which may have many edges to any one destination. This 206 /// ensures that all edges to that dest go to one block instead of each going 211 /// IndirectBrInst. Splitting these edges will almost always create an invalid 243 /// Loop over all of the edges in the CFG, breaking critical edges as they are 244 /// found. Returns the number of broken edges. 339 /// (because it's complicated to handle the case where one of the edges being 361 /// (because it's complicated to handle the case where one of the edges being 379 /// (because it's complicated to handle the case where one of the edges bein [all...] |
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/ |
H A D | CFGMST.h | 42 // Store all the edges in CFG. It may contain some stale edges 92 // 1. we prefer instrumenting those other edges by setting the weight in findBBInfo() 110 // Traverse the CFG using a stack. Find all the edges and assign the weight. in buildEdges() 111 // Edges with large weight will be put into MST first so they are less likely in buildEdges() 165 // Keep track of entry/exit edges: in buildEdges() 195 // if possible. Those exit edges may never have a chance to be in buildEdges() 218 // Sort CFG edges based on its weight. in computeMinimumSpanningTree() 226 // Traverse all the edges and compute the Minimum Weight Spanning Tree in computeMinimumSpanningTree() 230 // This works around the insufficient support of critical edges spli in computeMinimumSpanningTree() [all...] |
/freebsd/contrib/llvm-project/llvm/include/llvm/Support/ |
H A D | CFGDiff.h | 29 // InverseEdge defines whether we want to change the edges direction. E.g., for 55 // multigraph. Added edges are pruned to be unique, and deleted edges will 56 // remove all existing edges between two blocks. 67 // updates will be applied in reverse: deleted edges are considered re-added 68 // and inserted edges are considered deleted when returning children. 80 OS << DIText[IsInsert] << " edges: \n"; in printMap() 163 "the direction of edges and the graph.)\n"; in print()
|
/freebsd/contrib/llvm-project/lld/MachO/ |
H A D | ExportTrie.cpp | 12 // representation. The prefixes are stored on the edges of the trie, and one 86 std::vector<Edge> edges; member 138 // Size of the whole node (including the terminalSize and the outgoing edges.) in updateOffset() 150 // Compute size of all child edges. in updateOffset() 152 for (const Edge &edge : edges) { in updateOffset() 181 assert(edges.size() < 256); in writeTo() 182 *buf++ = edges.size(); in writeTo() 184 for (const Edge &edge : edges) { in writeTo() 248 node->edges.emplace_back(pivotSymbol->getName().slice(lastPos, pos), in sortAndBuild()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | EdgeBundles.h | 1 //===-------- EdgeBundles.h - Bundles of CFG edges --------------*- c++ -*-===// 9 // The EdgeBundles analysis forms equivalence classes of CFG edges such that all 10 // edges leaving a machine basic block are in the same bundle, and all edges
|
/freebsd/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/ |
H A D | EHFrameSupport.h | 27 /// Identify CFI record type and edges based on number and order of edges 32 /// Zero or one outgoing edges: Record is CIE. If present, edge points to 35 /// Two or three outgoing edges: Record is an FDE. First edge points to CIE, 38 /// It is illegal to call this function on a block with four or more edges.
|
H A D | x86_64.h | 150 /// for the PC (unlike the Delta edges) so that a Branch32PCRel with a target 168 /// for the PC (unlike the Delta edges) so that a PCRel32 with a target 195 /// identifies the call/branch as being to a pointer jump stub. For edges of 233 /// Edges of this kind are usually handled by a GOT builder pass inserted by 240 /// - *ASSERTION* Failure to handle edges of this kind prior to the fixup 253 /// Edges of this kind are usually handled by a GOT builder pass inserted by 260 /// - *ASSERTION* Failure to handle edges of this kind prior to the fixup 275 /// Edges of this kind are usually handled by a GOT builder pass inserted by 282 /// - *ASSERTION* Failure to handle edges of this kind prior to the fixup 324 /// Edges of this kind are usually lowered by a GOT builder pass inserted by [all …]
|
/freebsd/sys/sys/ |
H A D | lockf.h | 79 struct lockf_edge_list lf_outedges; /* (s) list of out-edges */ 80 struct lockf_edge_list lf_inedges; /* (s) list of in-edges */ 97 * will have in-coming edges to any pending lock which it blocks. 101 * requests in this list will have out-going edges to each active lock 102 * that blocks then. They will also have out-going edges to each
|
/freebsd/crypto/openssl/providers/implementations/ciphers/ |
H A D | cipher_aes_cbc_hmac_sha1_hw.c | 128 HASH_DESC hash_d[8], edges[8]; in tls1_multi_block_encrypt() local 213 edges[i].ptr = blocks[i].c; in tls1_multi_block_encrypt() 214 edges[i].blocks = 1; in tls1_multi_block_encrypt() 218 sha1_multi_block(mctx, edges, n4x); in tls1_multi_block_encrypt() 231 edges[i].ptr = hash_d[i].ptr; in tls1_multi_block_encrypt() 232 edges[i].blocks = MAXCHUNKSIZE / 64; in tls1_multi_block_encrypt() 236 sha1_multi_block(mctx, edges, n4x); in tls1_multi_block_encrypt() 240 edges[i].ptr = hash_d[i].ptr += MAXCHUNKSIZE; in tls1_multi_block_encrypt() 242 edges[i].blocks = MAXCHUNKSIZE / 64; in tls1_multi_block_encrypt() 273 edges[i].blocks = 1; in tls1_multi_block_encrypt() [all …]
|