/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | PredIteratorCache.h | 38 /// for (BasicBlock **PI = PredCache->GetPreds(BB); *PI; ++PI) 41 /// for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) 42 BasicBlock **GetPreds(BasicBlock *BB) { argument 43 BasicBlock **&Entry = BlockToPredsMap[BB]; 47 SmallVector<BasicBlock *, 32> PredCache(pred_begin(BB), pred_end(BB)); 50 BlockToPredCountMap[BB] = PredCache.size() - 1; 57 unsigned GetNumPreds(BasicBlock *BB) const { 58 auto Result = BlockToPredCountMap.find(BB); 66 get(BasicBlock *BB) argument [all...] |
H A D | InstIterator.h | 38 BB_i_t BB; // BasicBlocksType::iterator member in class:llvm::InstIterator 54 : BBs(II.BBs), BB(II.BB), BI(II.BI) {} 58 : BBs(II.BBs), BB(II.BB), BI(II.BI) {} 61 : BBs(&m.getBasicBlockList()), BB(BBs->begin()) { // begin ctor 62 if (BB != BBs->end()) { 63 BI = BB->begin(); 69 : BBs(&m.getBasicBlockList()), BB(BBs->end()) { // end ctor 73 inline BBIty &getBasicBlockIterator() { return BB; } [all...] |
H A D | CFG.h | 108 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } argument 109 inline const_pred_iterator pred_begin(const BasicBlock *BB) { argument 110 return const_pred_iterator(BB); 112 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} argument 113 inline const_pred_iterator pred_end(const BasicBlock *BB) { argument 114 return const_pred_iterator(BB, true); 116 inline bool pred_empty(const BasicBlock *BB) { argument 117 return pred_begin(BB) 121 pred_size(const BasicBlock *BB) argument 124 predecessors(BasicBlock *BB) argument 127 predecessors(const BasicBlock *BB) argument 266 succ_begin(BasicBlock *BB) argument 269 succ_begin(const BasicBlock *BB) argument 272 succ_end(BasicBlock *BB) argument 275 succ_end(const BasicBlock *BB) argument 278 succ_empty(const BasicBlock *BB) argument 281 succ_size(const BasicBlock *BB) argument 284 successors(BasicBlock *BB) argument 287 successors(const BasicBlock *BB) argument 302 getEntryNode(BasicBlock *BB) argument 311 getEntryNode(const BasicBlock *BB) argument [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | InstructionPrecedenceTracking.h | 37 void fill(const BasicBlock *BB); 40 /// Asserts that the cached info for \p BB is up-to-date. This helps to catch 43 void validate(const BasicBlock *BB) const; 55 /// Returns the topmost special instruction from the block \p BB. Returns 57 const Instruction *getFirstSpecialInstruction(const BasicBlock *BB); 59 /// Returns true iff at least one instruction from the basic block \p BB is 61 bool hasSpecialInstructions(const BasicBlock *BB); 78 /// Inst to the basic block \p BB. It makes all necessary updates to internal 80 void insertInstructionTo(const Instruction *Inst, const BasicBlock *BB); 104 const Instruction *getFirstICFI(const BasicBlock *BB) { argument 110 hasICF(const BasicBlock *BB) argument 128 getFirstMemoryWrite(const BasicBlock *BB) argument 134 mayWriteToMemory(const BasicBlock *BB) argument [all...] |
H A D | OrderedInstructions.h | 59 void invalidateBlock(const BasicBlock *BB) { OBBMap.erase(BB); } argument
|
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | InstructionPrecedenceTracking.cpp | 36 const BasicBlock *BB) { 43 validate(BB); 46 if (FirstSpecialInsts.find(BB) == FirstSpecialInsts.end()) { 47 fill(BB); 48 assert(FirstSpecialInsts.find(BB) != FirstSpecialInsts.end() && "Must be!"); 50 return FirstSpecialInsts[BB]; 54 const BasicBlock *BB) { 55 return getFirstSpecialInstruction(BB) != nullptr; 65 void InstructionPrecedenceTracking::fill(const BasicBlock *BB) { argument 66 FirstSpecialInsts.erase(BB); 35 getFirstSpecialInstruction( const BasicBlock *BB) argument 53 hasSpecialInstructions( const BasicBlock *BB) argument 103 insertInstructionTo(const Instruction *Inst, const BasicBlock *BB) argument [all...] |
H A D | OrderedBasicBlock.cpp | 28 : NextInstPos(0), BB(BasicB) { 29 LastInstFound = BB->end(); 32 /// Given no cached results, find if \p A comes before \p B in \p BB. 33 /// Cache and number out instruction while walking \p BB. 37 assert(!(LastInstFound == BB->end() && NextInstPos != 0) && 39 assert(A->getParent() == BB && "Instruction supposed to be in the block!"); 40 assert(B->getParent() == BB && "Instruction supposed to be in the block!"); 43 auto II = BB->begin(); 44 auto IE = BB->end(); 63 /// comes before \p B in \p BB [all...] |
H A D | CFG.cpp | 29 const BasicBlock *BB = &F.getEntryBlock(); local 30 if (succ_empty(BB)) 37 Visited.insert(BB); 38 VisitStack.push_back(std::make_pair(BB, succ_begin(BB))); 39 InStack.insert(BB); 47 BB = *I++; 48 if (Visited.insert(BB).second) { 53 if (InStack.count(BB)) 54 Result.push_back(std::make_pair(ParentBB, BB)); 72 GetSuccessorNumber(const BasicBlock *BB, const BasicBlock *Succ) argument 121 getOutermostLoop(const LoopInfo *LI, const BasicBlock *BB) argument 162 BasicBlock *BB = Worklist.pop_back_val(); local 233 BasicBlock *BB = const_cast<BasicBlock *>(A->getParent()); local [all...] |
H A D | BranchProbabilityInfo.cpp | 150 static void UpdatePDTWorklist(const BasicBlock *BB, PostDominatorTree *PDT, argument 156 PDT->getDescendants(const_cast<BasicBlock *>(BB), Descendants); 157 for (auto *BB : Descendants) 158 if (TargetSet.insert(BB).second) 159 for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) 169 for (auto &BB : F) { 170 const Instruction *TI = BB.getTerminator(); 177 BB.getTerminatingDeoptimizeCall()) 178 UpdatePDTWorklist(&BB, PD 183 const BasicBlock *BB = WorkList.pop_back_val(); local 212 const BasicBlock *BB = WorkList.pop_back_val(); local 233 calcUnreachableHeuristics(const BasicBlock *BB) argument 277 calcMetadataWeights(const BasicBlock *BB) argument 379 calcColdCallHeuristics(const BasicBlock *BB) argument 423 calcPointerHeuristics(const BasicBlock *BB) argument 456 getSCCNum(const BasicBlock *BB, const BranchProbabilityInfo::SccInfo &SccI) argument 465 isSCCHeader(const BasicBlock *BB, int SccNum, BranchProbabilityInfo::SccInfo &SccI) argument 492 computeUnlikelySuccessors(const BasicBlock *BB, Loop *L, SmallPtrSetImpl<const BasicBlock*> &UnlikelyBlocks) argument 597 calcLoopBranchHeuristics(const BasicBlock *BB, const LoopInfo &LI, SccInfo &SccI) argument 682 calcZeroHeuristics(const BasicBlock *BB, const TargetLibraryInfo *TLI) argument 801 calcFloatingPointHeuristics(const BasicBlock *BB) argument 843 calcInvokeHeuristics(const BasicBlock *BB) argument 964 eraseBlock(const BasicBlock *BB) argument [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | WasmEHFuncInfo.h | 33 const BasicBlock *getEHPadUnwindDest(const BasicBlock *BB) const { 34 return EHPadUnwindMap.lookup(BB).get<const BasicBlock *>(); 36 void setEHPadUnwindDest(const BasicBlock *BB, const BasicBlock *Dest) { argument 37 EHPadUnwindMap[BB] = Dest; 39 bool hasEHPadUnwindDest(const BasicBlock *BB) const { 40 return EHPadUnwindMap.count(BB);
|
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | InstructionNamer.cpp | 39 for (BasicBlock &BB : F) { 40 if (!BB.hasName()) 41 BB.setName("bb"); 43 for (Instruction &I : BB)
|
H A D | BasicBlockUtils.cpp | 58 for (auto *BB : BBs) { 62 for (BasicBlock *Succ : successors(BB)) { 63 Succ->removePredecessor(BB, KeepOneInputPHIs); 65 Updates->push_back({DominatorTree::Delete, BB, Succ}); 69 while (!BB->empty()) { 70 Instruction &I = BB->back(); 78 BB->getInstList().pop_back(); 80 new UnreachableInst(BB->getContext(), BB); 81 assert(BB 88 DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU, bool KeepOneInputPHIs) argument 129 BasicBlock *BB = &*I; local 139 FoldSingleEntryPHINodes(BasicBlock *BB, MemoryDependenceResults *MemDep) argument 156 DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI) argument 171 MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU, LoopInfo *LI, MemorySSAUpdater *MSSAU, MemoryDependenceResults *MemDep, bool PredecessorWithTwoSuccessors) argument 338 removeRedundantDbgInstrsUsingBackwardScan(BasicBlock *BB) argument 385 removeRedundantDbgInstrsUsingForwardScan(BasicBlock *BB) argument 413 RemoveRedundantDbgInstrs(BasicBlock *BB) argument 474 SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU) argument 709 SplitBlockPredecessors(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, const char *Suffix, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) argument 882 FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB, BasicBlock *Pred, DomTreeUpdater *DTU) argument 997 GetIfCondition(BasicBlock *BB, BasicBlock *&IfTrue, BasicBlock *&IfFalse) argument [all...] |
H A D | UnifyFunctionExitNodes.cpp | 73 for (BasicBlock *BB : UnreachableBlocks) { 74 BB->getInstList().pop_back(); // Remove the unreachable inst. 75 BranchInst::Create(UnreachableBlock, BB); 109 for (BasicBlock *BB : ReturningBlocks) { 113 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); 115 BB->getInstList().pop_back(); // Remove the return insn 116 BranchInst::Create(NewRetBlock, BB);
|
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | ADCE.cpp | 104 BasicBlock *BB = nullptr; member in struct:__anon2652::BlockInfoType 106 /// Cache of BB->getTerminator(). 126 bool isLive(BasicBlock *BB) { return BlockInfo[BB].Live; } argument 164 void markLive(BlockInfoType &BB); 165 void markLive(BasicBlock *BB) { markLive(BlockInfo[BB]); } argument 192 void makeUnconditional(BasicBlock *BB, BasicBlock *Target); 225 for (auto &BB : F) { 226 NumInsts += BB 261 insert(BasicBlock *BB) argument 266 completed(BasicBlock *BB) argument 270 onStack(BasicBlock *BB) argument 299 auto *BB = PDTChild->getBlock(); local 314 auto *BB = &F.getEntryBlock(); local 649 makeUnconditional(BasicBlock *BB, BasicBlock *Target) argument [all...] |
H A D | JumpThreading.cpp | 189 // [Block BB] 211 static void updatePredecessorProfileMetadata(PHINode *PN, BasicBlock *BB) { argument 212 BranchInst *CondBr = dyn_cast<BranchInst>(BB->getTerminator()); 260 auto PredOutEdge = GetPredOutEdge(PN->getIncomingBlock(i), BB); 383 for (auto &BB : F) 384 if (!DT.isReachableFromEntry(&BB)) 385 Unreachable.insert(&BB); 394 for (auto &BB : F) { 395 if (Unreachable.count(&BB)) 397 while (ProcessBlock(&BB)) // Threa 453 auto *BB = Cond->getParent(); local 476 getJumpThreadDuplicationCost(BasicBlock *BB, Instruction *StopAt, unsigned Threshold) argument 593 ComputeValueKnownInPredecessorsImpl( Value *V, BasicBlock *BB, PredValueInfo &Result, ConstantPreference Preference, DenseSet<std::pair<Value *, BasicBlock *>> &RecursionSet, Instruction *CxtI) argument 964 GetBestDestForJumpOnUndef(BasicBlock *BB) argument 982 hasAddressTakenAndUsed(BasicBlock *BB) argument 994 ProcessBlock(BasicBlock *BB) argument 1201 ProcessImpliedCondition(BasicBlock *BB) argument 1241 isOpDefinedInBlock(Value *Op, BasicBlock *BB) argument 1490 FindMostPopularDest(BasicBlock *BB, const SmallVectorImpl<std::pair<BasicBlock *, BasicBlock *>> &PredToDestList) argument 1551 ProcessThreadableEdges(Value *Cond, BasicBlock *BB, ConstantPreference Preference, Instruction *CxtI) argument 1727 BasicBlock *BB = PN->getParent(); local 1756 BasicBlock *BB = BO->getParent(); local 1883 MaybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB) argument 1934 UpdateSSA( BasicBlock *BB, BasicBlock *NewBB, DenseMap<Instruction *, Value *> &ValueMapping) argument 2019 TryThreadEdge( BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, BasicBlock *SuccBB) argument 2058 ThreadEdge(BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, BasicBlock *SuccBB) argument 2144 SplitBlockPreds(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, const char *Suffix) argument 2185 doesBlockHaveProfileData(BasicBlock *BB) argument 2205 UpdateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB, BasicBlock *NewBB, BasicBlock *SuccBB) argument 2303 DuplicateCondBranchOnPHIIntoPred( BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs) argument 2342 << DuplicationCost << " block is:" << *BB << "\\n"); local 2429 UnfoldSelectInstr(BasicBlock *Pred, BasicBlock *BB, SelectInst *SI, PHINode *SIUse, unsigned Idx) argument 2464 TryToUnfoldSelect(SwitchInst *SI, BasicBlock *BB) argument 2502 TryToUnfoldSelect(CmpInst *CondCmp, BasicBlock *BB) argument 2567 TryToUnfoldSelectInCurrBB(BasicBlock *BB) argument 2657 ProcessGuards(BasicBlock *BB) argument 2691 ThreadGuard(BasicBlock *BB, IntrinsicInst *Guard, BranchInst *BI) argument [all...] |
H A D | LoopSimplifyCFG.cpp | 55 /// If \p BB is a switch or a conditional branch, but only one of its successors 58 static BasicBlock *getOnlyLiveSuccessor(BasicBlock *BB) { argument 59 Instruction *TI = BB->getTerminator(); 84 /// Removes \p BB from all loops from [FirstLoop, LastLoop) in parent chain. 85 static void removeBlockFromLoops(BasicBlock *BB, Loop *FirstLoop, argument 89 assert(FirstLoop->contains(BB) && "Must be a loop block!"); 92 Current->removeBlockFromLoop(BB); 100 for (BasicBlock *BB : BBs) { 101 Loop *BBL = LI.getLoopFor(BB); 168 for (const BasicBlock *BB 198 BasicBlock *BB = *I; local 230 BasicBlock *BB = *I; local 302 BasicBlock *BB = *I; local [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | WasmEHPrepare.cpp | 121 void prepareEHPad(BasicBlock *BB, bool NeedLSDA, unsigned Index = 0); 122 void prepareTerminateCleanupPad(BasicBlock *BB); 153 // Erase the specified BBs if the BB does not have any remaining predecessors, 159 auto *BB = WL.pop_back_val(); local 160 if (pred_begin(BB) != pred_end(BB)) 162 WL.append(succ_begin(BB), succ_end(BB)); 163 DeleteDeadBlock(BB); 182 // delete all following instructions within the BB, an 191 auto *BB = ThrowI->getParent(); local 276 prepareEHPad(BasicBlock *BB, bool NeedLSDA, unsigned Index) argument [all...] |
H A D | MachineSSAUpdater.cpp | 66 bool MachineSSAUpdater::HasValueForBlock(MachineBasicBlock *BB) const { 67 return getAvailableVals(AV).count(BB); 72 void MachineSSAUpdater::AddAvailableValue(MachineBasicBlock *BB, unsigned V) { argument 73 getAvailableVals(AV)[BB] = V; 78 unsigned MachineSSAUpdater::GetValueAtEndOfBlock(MachineBasicBlock *BB) { argument 79 return GetValueAtEndOfBlockInternal(BB); 83 unsigned LookForIdenticalPHI(MachineBasicBlock *BB, argument 85 if (BB->empty()) 88 MachineBasicBlock::iterator I = BB->begin(); 95 while (I != BB 116 InsertNewDef(unsigned Opcode, MachineBasicBlock *BB, MachineBasicBlock::iterator I, const TargetRegisterClass *RC, MachineRegisterInfo *MRI, const TargetInstrInfo *TII) argument 143 GetValueInMiddleOfBlock(MachineBasicBlock *BB) argument 248 BlkSucc_begin(BlkT *BB) argument 249 BlkSucc_end(BlkT *BB) argument 282 FindPredecessorBlocks(MachineBasicBlock *BB, SmallVectorImpl<MachineBasicBlock*> *Preds) argument 291 GetUndefVal(MachineBasicBlock *BB, MachineSSAUpdater *Updater) argument 303 CreateEmptyPHI(MachineBasicBlock *BB, unsigned NumPreds, MachineSSAUpdater *Updater) argument 354 GetValueAtEndOfBlockInternal(MachineBasicBlock *BB) argument [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
H A D | JumpThreading.h | 111 bool ProcessBlock(BasicBlock *BB); 112 bool MaybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB); 113 void UpdateSSA(BasicBlock *BB, BasicBlock *NewBB, 119 bool TryThreadEdge(BasicBlock *BB, 122 void ThreadEdge(BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, 125 BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs); 128 Value *V, BasicBlock *BB, jumpthreading::PredValueInfo &Result, 133 ComputeValueKnownInPredecessors(Value *V, BasicBlock *BB, argument 138 return ComputeValueKnownInPredecessorsImpl(V, BB, Result, Preference, 142 bool ProcessThreadableEdges(Value *Cond, BasicBlock *BB, [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Target/VE/ |
H A D | VEInstrInfo.cpp | 77 MachineBasicBlock *BB = &MBB; local 78 const BasicBlock *LLVM_BB = BB->getBasicBlock(); 81 MachineFunction::iterator It = ++(BB->getIterator()); 85 // Transfer the remainder of BB and its successor edges to sinkMBB. 86 sinkMBB->splice(sinkMBB->begin(), BB, 88 BB->end()); 89 sinkMBB->transferSuccessorsAndUpdatePHIs(BB); 92 BB->addSuccessor(syscallMBB); 93 BB->addSuccessor(sinkMBB); 94 BuildMI(BB, d [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Target/Mips/ |
H A D | Mips16ISelLowering.h | 54 MachineBasicBlock *BB) const; 58 MachineBasicBlock *BB) const; 62 MachineBasicBlock *BB) const; 66 MachineBasicBlock *BB) const; 71 MachineBasicBlock *BB) const; 74 MachineBasicBlock *BB) const; 78 MachineBasicBlock *BB) const;
|
H A D | Mips16ISelLowering.cpp | 165 MachineBasicBlock *BB) const { 168 return MipsTargetLowering::EmitInstrWithCustomInserter(MI, BB); 170 return emitSel16(Mips::BeqzRxImm16, MI, BB); 172 return emitSel16(Mips::BnezRxImm16, MI, BB); 174 return emitSeliT16(Mips::Bteqz16, Mips::CmpiRxImmX16, MI, BB); 176 return emitSeliT16(Mips::Bteqz16, Mips::SltiRxImmX16, MI, BB); 178 return emitSeliT16(Mips::Bteqz16, Mips::SltiuRxImmX16, MI, BB); 180 return emitSeliT16(Mips::Btnez16, Mips::CmpiRxImmX16, MI, BB); 182 return emitSeliT16(Mips::Btnez16, Mips::SltiRxImmX16, MI, BB); 184 return emitSeliT16(Mips::Btnez16, Mips::SltiuRxImmX16, MI, BB); [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPUUnifyDivergentExitNodes.cpp | 97 /// \returns true if \p BB is reachable through only uniform branches. 100 BasicBlock &BB) { 104 for (BasicBlock *Pred : predecessors(&BB)) 123 for (BasicBlock &BB : F) { 124 for (Instruction &I : BB) { 177 for (BasicBlock *BB : ReturningBlocks) { 181 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); 184 BB->getTerminator()->eraseFromParent(); 185 BranchInst::Create(NewRetBlock, BB); 99 isUniformlyReached(const LegacyDivergenceAnalysis &DA, BasicBlock &BB) argument [all...] |
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/FuzzMutate/ |
H A D | RandomIRBuilder.h | 37 Value *findOrCreateSource(BasicBlock &BB, ArrayRef<Instruction *> Insts); 43 Value *findOrCreateSource(BasicBlock &BB, ArrayRef<Instruction *> Insts, 46 Value *newSource(BasicBlock &BB, ArrayRef<Instruction *> Insts, 49 /// \c BB. This may also create some new instruction in \c BB and use that. 50 void connectToSink(BasicBlock &BB, ArrayRef<Instruction *> Insts, Value *V); 51 /// Create a user for \c V in \c BB. 52 void newSink(BasicBlock &BB, ArrayRef<Instruction *> Insts, Value *V); 53 Value *findPointer(BasicBlock &BB, ArrayRef<Instruction *> Insts,
|
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | PruneEH.cpp | 52 static void DeleteBasicBlock(BasicBlock *BB, CallGraph &CG); 109 for (const BasicBlock &BB : *F) { 110 const Instruction *TI = BB.getTerminator(); 117 for (const Instruction &I : BB) { 191 for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) { 192 if (InvokeInst *II = dyn_cast<InvokeInst>(BB->getTerminator())) 195 removeUnwindEdge(&*BB); 199 DeleteBasicBlock(UnwindBlock, CG); // Delete the new BB 232 DeleteBasicBlock(BasicBlock *BB, CallGraph &CG) argument [all...] |