/freebsd/contrib/llvm-project/llvm/lib/CodeGenData/ |
H A D | OutlinedHashTree.cpp | 39 for (const auto &[Hash, Successor] : Current->Successors) in walkGraph() 45 for (const auto &P : Current->Successors) in walkGraph() 76 auto I = Current->Successors.find(StableHash); in insert() 77 if (I == Current->Successors.end()) { in insert() 81 Current->Successors.emplace(StableHash, std::move(Next)); in insert() 103 for (auto &[Hash, NextSrcNode] : SrcNode->Successors) { in merge() 105 auto I = DstNode->Successors.find(Hash); in merge() 106 if (I == DstNode->Successors.end()) { in merge() 110 DstNode->Successors.emplace(Hash, std::move(NextDst)); in merge() 123 const auto I = Current->Successors.find(StableHash); in find() [all …]
|
H A D | OutlinedHashTreeRecord.cpp | 134 for (auto &P : Node->Successors) in convertToStableData() 139 // Sort the Successors so that they come out in the same order as in the map. in convertToStableData() 149 assert(IdNodeMap[0]->Successors.empty()); in convertFromStableData() 159 auto &Successors = Curr->Successors; in convertFromStableData() local 160 assert(Successors.empty()); in convertFromStableData() 165 Successors[Hash] = std::move(Sucessor); in convertFromStableData()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | FunctionPropertiesAnalysis.cpp | 114 // Calculate critical edges by looking through all successors of a basic in updateForBB() 115 // block that has multiple successors and finding ones that have multiple in updateForBB() 118 for (const auto *Successor : successors(&BB)) { in updateForBB() 324 // The successors may become unreachable in the case of `invoke` inlining. in FunctionPropertiesUpdater() 325 // We track successors separately, too, because they form a boundary, together in FunctionPropertiesUpdater() 327 Successors.insert(succ_begin(&CallSiteBB), succ_end(&CallSiteBB)); in FunctionPropertiesUpdater() 332 // need to invalidate and then re-account BB data is the successors of the in FunctionPropertiesUpdater() 338 Successors.insert(succ_begin(UnwindDest), succ_end(UnwindDest)); in FunctionPropertiesUpdater() 346 Successors.erase(&CallSiteBB); in FunctionPropertiesUpdater() 348 for (const auto *BB : Successors) in FunctionPropertiesUpdater() [all …]
|
H A D | BranchProbabilityInfo.cpp | 264 for (const auto *Succ : successors(BB)) in getSccExitBlocks() 296 if (llvm::any_of(successors(BB), [&](const BasicBlock *Succ) { in calculateSccBlockType() 390 // Check that the number of successors is manageable. in calcMetadataWeights() 391 assert(TI->getNumSuccessors() < UINT32_MAX && "Too many successors"); in calcMetadataWeights() 539 // Compute the unlikely successors to the block BB in the loop L, specifically 597 // Trace the phi node to find all values that come from successors of BB in computeUnlikelySuccessors() 620 if (!CmpLHSConst || !llvm::is_contained(successors(BB), B)) in computeUnlikelySuccessors() 672 const LoopBlock &SrcLoopBB, iterator_range<IterT> Successors) const { in getMaxEstimatedEdgeWeight() 675 for (const BasicBlock *DstBB : Successors) { in getMaxEstimatedEdgeWeight() 813 // calculated before visiting theirs successors. in computeEestimateBlockWeight() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | SampleProfileInference.h | 130 SampleProfileInference(FunctionT &F, BlockEdgeMap &Successors, in SampleProfileInference() argument 132 : F(F), Successors(Successors), SampleBlockWeights(SampleBlockWeights) {} in SampleProfileInference() 147 BlockEdgeMap &Successors, FlowFunction &Func); 155 /// Successors for each basic block in the CFG. 156 BlockEdgeMap &Successors; variable 175 // An exit block is a block without any successors. in apply() 262 for (auto *Succ : Successors[BB]) { in createFlowFunction() 279 findUnlikelyJumps(BasicBlocks, Successors, Func); in createFlowFunction() 303 BlockEdgeMap &Successors, FlowFunctio in findUnlikelyJumps() argument [all...] |
H A D | SampleProfileLoaderBaseImpl.h | 80 static succ_range getSuccessors(BasicBlock *BB) { return successors(BB); } 247 void applyProfi(FunctionT &F, BlockEdgeMap &Successors, 299 /// Successors for each basic block in the CFG. 300 BlockEdgeMap Successors; 349 Successors.clear(); 767 NumTotalEdges = Successors[BB].size(); 768 for (auto *Succ : Successors[BB]) { 773 SingleEdge = std::make_pair(BB, Successors[BB][0]); 851 for (auto *Succ : Successors[BB]) { 897 // Add successors for B1. [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | MachineBasicBlock.h | 161 std::vector<MachineBasicBlock *> Successors; 163 /// Keep track of the probabilities to the successors. This vector has the 164 /// same order as Successors, or it is empty if we don't use it (disable 418 succ_iterator succ_begin() { return Successors.begin(); } 419 const_succ_iterator succ_begin() const { return Successors.begin(); } 420 succ_iterator succ_end() { return Successors.end(); } 421 const_succ_iterator succ_end() const { return Successors.end(); } 423 { return Successors.rbegin(); } 425 { return Successors.rbegin(); } 427 { return Successors.rend(); } [all …]
|
/freebsd/share/mk/ |
H A D | version_gen.awk | 34 # successors[] - array index by version name, contains successor 61 successors[symver] = ""; 83 successors[symver] = v; 213 if (successors[v] != "") 214 print_version(successors[v]); 232 if (successors[v] == "") 235 printf("} %s;\n", successors[v]);
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | MachineBlockPlacement.cpp | 437 /// blocks and their successors through the pass. 475 SmallVector<MachineBasicBlock *, 4> &Successors); 652 /// Mark a chain's successors as having one fewer preds. 655 /// quickly walk the successors of each block in the chain and mark them as 656 /// having one fewer active predecessor. It also adds any successors of this 661 // Walk all the blocks in this chain, marking their successors as having in markChainSuccessors() 668 /// Mark a single block's successors as having one fewer preds. 677 // Add any successors for which this is the only un-placed in-loop in markBlockSuccessors() 681 for (MachineBasicBlock *Succ : MBB->successors()) { in markBlockSuccessors() 703 /// This helper function collects the set of successors of block [all …]
|
H A D | IndirectBrExpandPass.cpp | 107 // Set of all potential successors for indirectbr instructions. in runImpl() 113 // Handle the degenerate case of no successors by replacing the indirectbr in runImpl() 122 for (BasicBlock *SuccBB : IBr->successors()) in runImpl() 136 // Skip blocks that aren't successors to an indirectbr we're going to in runImpl() 183 for (BasicBlock *SuccBB : IBr->successors()) in runImpl() 226 for (BasicBlock *SuccBB : IBr->successors()) in runImpl() 250 for (BasicBlock *SuccBB : IBr->successors()) in runImpl() 266 // If there were multiple indirectbr's, they may have common successors, in runImpl()
|
H A D | MachineBasicBlock.cpp | 288 for (const MachineBasicBlock *Succ : successors()) in hasEHPadSuccessor() 305 for (const MachineBasicBlock *Succ : successors()) { in mayHaveInlineAsmBr() 393 // Print the successors in print() 394 OS.indent(2) << "successors: "; in print() 697 // A block with no successors has no concerns with fall-through edges. in updateTerminator() 735 // successors is its layout successor, rewrite it to a fallthrough in updateTerminator() 789 // no greater than the number of successors. in validateSuccProbs() 792 "The sum of successors's probabilities exceeds one."); in validateSuccProbs() 800 if (!(Probs.empty() && !Successors.empty())) in addSuccessor() 802 Successors.push_back(Succ); in addSuccessor() [all …]
|
H A D | EdgeBundles.cpp | 48 // Join the outgoing bundle with the ingoing bundles of all successors. in runOnMachineFunction() 49 for (const MachineBasicBlock *Succ : MBB.successors()) in runOnMachineFunction() 88 for (const MachineBasicBlock *Succ : MBB.successors()) in WriteGraph()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGenData/ |
H A D | OutlinedHashTree.h | 29 /// and a collection of Successors (other HashNodes). If a HashNode has 37 /// The successors of this node. 39 std::unordered_map<stable_hash, std::unique_ptr<HashNode>> Successors; member 64 getRoot()->Successors.clear(); in clear()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VPlanCFG.h | 26 /// Iterator to traverse all successors of a VPBlockBase node. This includes the 28 /// parent region's successors. This ensures all blocks in a region are visited 31 // directly and not their successors. Those will be traversed when a region's 59 // For exit blocks, use the next parent region with successors. in deref() 125 /// implicitly have their parent region's successors. This ensures all blocks in 239 // successors/predecessors but not to the blocks inside the region.
|
H A D | VPlan.cpp | 192 if (!Successors.empty() || !Parent) in getEnclosingBlockWithSuccessors() 195 "Block w/o successors not the exiting block of its parent."); in getEnclosingBlockWithSuccessors() 454 "VPIRBasicBlock can have at most two successors at the moment!"); in execute() 554 SmallVector<VPBlockBase *, 2> Succs(successors()); in splitAt() 555 // First, disconnect the current block from its successors. in splitAt() 563 // Add successors for block to split to new block. in splitAt() 589 "block with multiple successors doesn't have a recipe as terminator"); in hasConditionalTerminator() 601 assert(IsCondBranch && "block with multiple successors not terminated by " in hasConditionalTerminator() 609 "block with 0 or 1 successors terminated by conditional branch recipe"); in hasConditionalTerminator() 632 O << Indent << "No successors\n"; in printSuccessors() [all …]
|
H A D | VPlanVerifier.cpp | 194 errs() << "Block has multiple successors but doesn't " in verifyBlock() 205 // Check block's successors. in verifyBlock() 206 const auto &Successors = VPB->getSuccessors(); in verifyBlock() local 209 if (hasDuplicates(Successors)) { in verifyBlock() 214 for (const VPBlockBase *Succ : Successors) { in verifyBlock() 274 errs() << "region exiting block has successors\n"; in verifyRegion()
|
H A D | VPlan.h | 453 SmallVector<VPBlockBase *, 1> Successors; variable 462 Successors.push_back(Successor); in appendSuccessor() 478 /// Remove \p Successor from the successors of this block. 480 auto Pos = find(Successors, Successor); in removeSuccessor() 482 Successors.erase(Pos); in removeSuccessor() 534 const VPBlocksTy &getSuccessors() const { return Successors; } in getSuccessors() 535 VPBlocksTy &getSuccessors() { return Successors; } in getSuccessors() 537 iterator_range<VPBlockBase **> successors() { return Successors; } in successors() function 545 return (Successors.size() == 1 ? *Successors.begin() : nullptr); in getSingleSuccessor() 554 size_t getNumSuccessors() const { return Successors.size(); } in getNumSuccessors() [all …]
|
/freebsd/contrib/llvm-project/openmp/runtime/src/ |
H A D | kmp_taskdeps.cpp | 37 node->dn.successors = NULL; in __kmp_init_node() 235 if (source_info->successors[i] == task_sink->td_task_id) { in __kmp_track_dependence() 243 kmp_int32 *old_succ_ids = source_info->successors; in __kmp_track_dependence() 246 source_info->successors = new_succ_ids; in __kmp_track_dependence() 250 source_info->successors[source_info->nsuccessors] = task_sink->td_task_id; in __kmp_track_dependence() 294 return td->td_depnode->dn.successors; in __kmpc_task_get_successors() 320 if (!dep->dn.successors || dep->dn.successors->node != node) { in __kmp_depnode_link_successor() 325 dep->dn.successors = __kmp_add_node(thread, dep->dn.successors, node); in __kmp_depnode_link_successor() 359 // synchronously add source to sink' list of successors in __kmp_depnode_link_successor() 362 if (!sink->dn.successors || sink->dn.successors->node != source) { in __kmp_depnode_link_successor() [all …]
|
H A D | kmp_taskdeps.h | 101 kmp_int32 successorNumber = TaskInfo->successors[i]; in __kmp_release_deps() 136 KA_TRACE(20, ("__kmp_release_deps: T#%d notifying successors of task %p.\n", in __kmp_release_deps() 150 for (kmp_depnode_list_t *p = node->dn.successors; p; p = next) { in __kmp_release_deps() 205 ("__kmp_release_deps: T#%d all successors of %p notified of completion\n", in __kmp_release_deps()
|
/freebsd/contrib/llvm-project/llvm/lib/Support/ |
H A D | DAGDeltaAlgorithm.cpp | 74 std::map<change_ty, std::vector<change_ty> > Successors; member in __anoncf29fe990111::DAGDeltaAlgorithmImpl 99 assert(Successors.count(Node) && "Invalid node!"); in succ_begin() 100 return Successors[Node].begin(); in succ_begin() 103 assert(Successors.count(Node) && "Invalid node!"); in succ_end() 104 return Successors[Node].end(); in succ_end() 184 Successors.insert(std::make_pair(Change, std::vector<change_ty>())); in DAGDeltaAlgorithmImpl() 188 Successors[Dep.first].push_back(Dep.second); in DAGDeltaAlgorithmImpl()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86VZeroUpper.cpp | 262 // block has successors that exit dirty. Record the location of the call, in processBasicBlock() 274 for (MachineBasicBlock *Succ : MBB.successors()) in processBasicBlock() 318 // unguarded call in each block, and add successors of dirty blocks to the in runOnMachineFunction() 328 // Re-visit all blocks that are successors of EXITS_DIRTY blocks. Add in runOnMachineFunction() 342 // successors need to be added to the worklist (if they haven't been in runOnMachineFunction() 347 for (MachineBasicBlock *Succ : MBB.successors()) in runOnMachineFunction()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Passes/ |
H A D | StandardInstrumentations.h | 145 // block, {(Succ, Multiplicity)} set of all pairs of the block's successors 147 // unordered the order of successors is not tracked by the CFG. In other words 148 // this allows basic block successors to be swapped by a pass without 496 return Successors.begin(); in begin() 499 return Successors.end(); in end() 504 assert(Successors.count(S) == 1 && "Expected to find successor."); in getSuccessorLabel() 505 return Successors.find(S)->getValue(); in getSuccessorLabel() 512 Successors.insert(SS); in addSuccessorLabel() 515 StringMap<std::string> Successors; variable
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | BranchProbabilityInfo.h | 46 /// defined by a pair (PredBlock and an index in the successors). The 50 /// We use a pair (PredBlock and an index in the successors) to uniquely 72 /// addition, if all successors have estimated weights set then maximum of these 78 /// used for any successors which doesn't have its weight set. For loop back 94 /// successors. BB1 and BB3 has no explicit estimated weights and assumed to 327 // a pair (PredBlock and an index in the successors) to specify an edge. 385 /// Iterates over all edges leading from \p SrcBB to \p Successors and 391 iterator_range<IterT> Successors) const;
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPUUnifyDivergentExitNodes.cpp | 244 SmallVector<BasicBlock *, 2> Successors(successors(BB)); in run() local 249 Updates.reserve(Updates.size() + 2 * Successors.size() + 2); in run() 251 // 'Successors' become successors of TransitionBB instead of BB, in run() 254 for (BasicBlock *Successor : Successors) { in run()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | CFG.h | 12 /// iterating successors and predecessors of basic blocks, the successors of 191 // successors. in SuccIterator() 261 inline succ_range successors(Instruction *I) { in successors() function 264 inline const_succ_range successors(const Instruction *I) { in successors() function 286 inline succ_range successors(BasicBlock *BB) { in successors() function 289 inline const_succ_range successors(const BasicBlock *BB) { in successors() function
|