| /openbsd/src/gnu/llvm/llvm/examples/IRTransforms/ |
| D | SimplifyCFG.cpp | 65 for (BasicBlock &BB : make_early_inc_range(F)) { in removeDeadBlocks_v1() 69 if (&F.getEntryBlock() == &BB || !pred_empty(&BB)) in removeDeadBlocks_v1() 75 for (BasicBlock *Succ : successors(&BB)) in removeDeadBlocks_v1() 76 Succ->removePredecessor(&BB); in removeDeadBlocks_v1() 84 while (!BB.empty()) { in removeDeadBlocks_v1() 85 Instruction &I = BB.back(); in removeDeadBlocks_v1() 91 BB.eraseFromParent(); in removeDeadBlocks_v1() 106 for (BasicBlock &BB : make_early_inc_range(F)) { in removeDeadBlocks_v2() 110 if (&F.getEntryBlock() == &BB || !pred_empty(&BB)) in removeDeadBlocks_v2() 116 for (BasicBlock *Succ : successors(&BB)) { in removeDeadBlocks_v2() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Target/Mips/ |
| D | Mips16ISelLowering.cpp | 165 MachineBasicBlock *BB) const { in EmitInstrWithCustomInserter() 168 return MipsTargetLowering::EmitInstrWithCustomInserter(MI, BB); in EmitInstrWithCustomInserter() 170 return emitSel16(Mips::BeqzRxImm16, MI, BB); in EmitInstrWithCustomInserter() 172 return emitSel16(Mips::BnezRxImm16, MI, BB); in EmitInstrWithCustomInserter() 174 return emitSeliT16(Mips::Bteqz16, Mips::CmpiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 176 return emitSeliT16(Mips::Bteqz16, Mips::SltiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 178 return emitSeliT16(Mips::Bteqz16, Mips::SltiuRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 180 return emitSeliT16(Mips::Btnez16, Mips::CmpiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 182 return emitSeliT16(Mips::Btnez16, Mips::SltiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 184 return emitSeliT16(Mips::Btnez16, Mips::SltiuRxImmX16, MI, BB); in EmitInstrWithCustomInserter() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Transforms/Scalar/ |
| D | JumpThreading.cpp | 218 static void updatePredecessorProfileMetadata(PHINode *PN, BasicBlock *BB) { in updatePredecessorProfileMetadata() argument 219 BranchInst *CondBr = dyn_cast<BranchInst>(BB->getTerminator()); in updatePredecessorProfileMetadata() 273 auto PredOutEdge = GetPredOutEdge(PN->getIncomingBlock(i), BB); in updatePredecessorProfileMetadata() 415 for (auto &BB : F) in runImpl() local 416 if (!DT.isReachableFromEntry(&BB)) in runImpl() 417 Unreachable.insert(&BB); in runImpl() 426 for (auto &BB : F) { in runImpl() local 427 if (Unreachable.count(&BB)) in runImpl() 429 while (processBlock(&BB)) // Thread all of the branches we can over BB. in runImpl() 435 RemoveRedundantDbgInstrs(&BB); in runImpl() [all …]
|
| D | ADCE.cpp | 105 BasicBlock *BB = nullptr; member 127 bool isLive(BasicBlock *BB) { return BlockInfo[BB].Live; } in isLive() argument 165 void markLive(BlockInfoType &BB); 166 void markLive(BasicBlock *BB) { markLive(BlockInfo[BB]); } in markLive() argument 193 void makeUnconditional(BasicBlock *BB, BasicBlock *Target); 226 for (auto &BB : F) { in initialize() local 227 NumInsts += BB.size(); in initialize() 228 auto &Info = BlockInfo[&BB]; in initialize() 229 Info.BB = &BB; in initialize() 230 Info.Terminator = BB.getTerminator(); in initialize() [all …]
|
| D | LoopSimplifyCFG.cpp | 53 static BasicBlock *getOnlyLiveSuccessor(BasicBlock *BB) { in getOnlyLiveSuccessor() argument 54 Instruction *TI = BB->getTerminator(); in getOnlyLiveSuccessor() 80 static void removeBlockFromLoops(BasicBlock *BB, Loop *FirstLoop, in removeBlockFromLoops() argument 84 assert(FirstLoop->contains(BB) && "Must be a loop block!"); in removeBlockFromLoops() 87 Current->removeBlockFromLoop(BB); in removeBlockFromLoops() 95 for (BasicBlock *BB : BBs) { in getInnermostLoopFor() 96 Loop *BBL = LI.getLoopFor(BB); in getInnermostLoopFor() 163 for (const BasicBlock *BB : S) in dump() local 164 dbgs() << "\t" << BB->getName() << "\n"; in dump() 169 for (const BasicBlock *BB : S) in dump() local [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Analysis/ |
| D | InstructionPrecedenceTracking.cpp | 40 const BasicBlock *BB) { in getFirstSpecialInstruction() argument 47 validate(BB); in getFirstSpecialInstruction() 50 if (FirstSpecialInsts.find(BB) == FirstSpecialInsts.end()) { in getFirstSpecialInstruction() 51 fill(BB); in getFirstSpecialInstruction() 52 assert(FirstSpecialInsts.find(BB) != FirstSpecialInsts.end() && "Must be!"); in getFirstSpecialInstruction() 54 return FirstSpecialInsts[BB]; in getFirstSpecialInstruction() 58 const BasicBlock *BB) { in hasSpecialInstructions() argument 59 return getFirstSpecialInstruction(BB) != nullptr; in hasSpecialInstructions() 69 void InstructionPrecedenceTracking::fill(const BasicBlock *BB) { in fill() argument 70 FirstSpecialInsts.erase(BB); in fill() [all …]
|
| D | CFG.cpp | 36 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges() local 37 if (succ_empty(BB)) in FindFunctionBackedges() 44 Visited.insert(BB); in FindFunctionBackedges() 45 VisitStack.push_back(std::make_pair(BB, succ_begin(BB))); in FindFunctionBackedges() 46 InStack.insert(BB); in FindFunctionBackedges() 54 BB = *I++; in FindFunctionBackedges() 55 if (Visited.insert(BB).second) { in FindFunctionBackedges() 60 if (InStack.count(BB)) in FindFunctionBackedges() 61 Result.push_back(std::make_pair(ParentBB, BB)); in FindFunctionBackedges() 66 InStack.insert(BB); in FindFunctionBackedges() [all …]
|
| D | BranchProbabilityInfo.cpp | 231 for (const auto *BB : Scc) { in SccInfo() local 232 LLVM_DEBUG(dbgs() << " " << BB->getName()); in SccInfo() 233 SccNums[BB] = SccNum; in SccInfo() 234 calculateSccBlockType(BB, SccNum); in SccInfo() 240 int BranchProbabilityInfo::SccInfo::getSCCNum(const BasicBlock *BB) const { in getSCCNum() 241 auto SccIt = SccNums.find(BB); in getSCCNum() 251 const auto *BB = MapIt.first; in getSccEnterBlocks() local 252 if (isSCCHeader(BB, SccNum)) in getSccEnterBlocks() 253 for (const auto *Pred : predecessors(BB)) in getSccEnterBlocks() 255 Enters.push_back(const_cast<BasicBlock *>(BB)); in getSccEnterBlocks() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/CodeGen/ |
| D | MachineSSAUpdater.cpp | 69 bool MachineSSAUpdater::HasValueForBlock(MachineBasicBlock *BB) const { in HasValueForBlock() 70 return getAvailableVals(AV).count(BB); in HasValueForBlock() 75 void MachineSSAUpdater::AddAvailableValue(MachineBasicBlock *BB, Register V) { in AddAvailableValue() argument 76 getAvailableVals(AV)[BB] = V; in AddAvailableValue() 81 Register MachineSSAUpdater::GetValueAtEndOfBlock(MachineBasicBlock *BB) { in GetValueAtEndOfBlock() argument 82 return GetValueAtEndOfBlockInternal(BB); in GetValueAtEndOfBlock() 86 Register LookForIdenticalPHI(MachineBasicBlock *BB, in LookForIdenticalPHI() argument 88 if (BB->empty()) in LookForIdenticalPHI() 91 MachineBasicBlock::iterator I = BB->begin(); in LookForIdenticalPHI() 98 while (I != BB->end() && I->isPHI()) { in LookForIdenticalPHI() [all …]
|
| D | UnreachableBlockElim.cpp | 105 for (MachineBasicBlock *BB : depth_first_ext(&F, Reachable)) in runOnMachineFunction() 106 (void)BB/* Mark all reachable blocks */; in runOnMachineFunction() 111 for (MachineBasicBlock &BB : F) { in runOnMachineFunction() 113 if (!Reachable.count(&BB)) { in runOnMachineFunction() 114 DeadBlocks.push_back(&BB); in runOnMachineFunction() 117 if (MLI) MLI->removeBlock(&BB); in runOnMachineFunction() 118 if (MDT && MDT->getNode(&BB)) MDT->eraseNode(&BB); in runOnMachineFunction() 120 while (BB.succ_begin() != BB.succ_end()) { in runOnMachineFunction() 121 MachineBasicBlock* succ = *BB.succ_begin(); in runOnMachineFunction() 127 start->getOperand(i).getMBB() == &BB) { in runOnMachineFunction() [all …]
|
| D | WasmEHPrepare.cpp | 113 void prepareEHPad(BasicBlock *BB, bool NeedPersonality, unsigned Index = 0); 151 auto *BB = WL.pop_back_val(); in eraseDeadBBsAndChildren() local 152 if (!pred_empty(BB)) in eraseDeadBBsAndChildren() 154 WL.append(succ_begin(BB), succ_end(BB)); in eraseDeadBBsAndChildren() 155 DeleteDeadBlock(BB); in eraseDeadBBsAndChildren() 183 auto *BB = ThrowI->getParent(); in prepareThrows() local 184 SmallVector<BasicBlock *, 4> Succs(successors(BB)); in prepareThrows() 185 BB->erase(std::next(BasicBlock::iterator(ThrowI)), BB->end()); in prepareThrows() 186 IRB.SetInsertPoint(BB); in prepareThrows() 200 for (BasicBlock &BB : F) { in prepareEHPads() [all …]
|
| D | IfConversion.cpp | 148 MachineBasicBlock *BB = nullptr; member 284 bool MeetIfcvtSizeLimit(MachineBasicBlock &BB, in MeetIfcvtSizeLimit() argument 287 return Cycle > 0 && TII->isProfitableToIfCvt(BB, Cycle, Extra, in MeetIfcvtSizeLimit() 294 const MachineFunction &MF = *TBBInfo.BB->getParent(); in MeetIfcvtSizeLimit() 296 MachineBasicBlock::iterator TIB = TBBInfo.BB->begin(); in MeetIfcvtSizeLimit() 297 MachineBasicBlock::iterator FIB = FBBInfo.BB->begin(); in MeetIfcvtSizeLimit() 298 MachineBasicBlock::iterator TIE = TBBInfo.BB->end(); in MeetIfcvtSizeLimit() 299 MachineBasicBlock::iterator FIE = FBBInfo.BB->end(); in MeetIfcvtSizeLimit() 303 *TBBInfo.BB, *FBBInfo.BB, in MeetIfcvtSizeLimit() 311 for (auto &I : make_range(TBBInfo.BB->begin(), TIB)) { in MeetIfcvtSizeLimit() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/IR/ |
| D | CFG.h | 110 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } in pred_begin() argument 111 inline const_pred_iterator pred_begin(const BasicBlock *BB) { in pred_begin() argument 112 return const_pred_iterator(BB); in pred_begin() 114 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} in pred_end() argument 115 inline const_pred_iterator pred_end(const BasicBlock *BB) { in pred_end() argument 116 return const_pred_iterator(BB, true); in pred_end() 118 inline bool pred_empty(const BasicBlock *BB) { in pred_empty() argument 119 return pred_begin(BB) == pred_end(BB); in pred_empty() 123 inline unsigned pred_size(const BasicBlock *BB) { in pred_size() argument 124 return std::distance(pred_begin(BB), pred_end(BB)); in pred_size() [all …]
|
| D | InstIterator.h | 38 BB_i_t BB; // BasicBlocksType::iterator variable 54 : BBs(II.BBs), BB(II.BB), BI(II.BI) {} in InstIterator() 58 : BBs(II.BBs), BB(II.BB), BI(II.BI) {} in InstIterator() 61 : BBs(&m.getBasicBlockList()), BB(BBs->begin()) { // begin ctor in InstIterator() 62 if (BB != BBs->end()) { in InstIterator() 63 BI = BB->begin(); in InstIterator() 69 : BBs(&m.getBasicBlockList()), BB(BBs->end()) { // end ctor in InstIterator() 73 inline BBIty &getBasicBlockIterator() { return BB; } in getBasicBlockIterator() 80 return BB == y.BB && (BB == BBs->end() || BI == y.BI); 96 while (BB == BBs->end() || BI == BB->begin()) { [all …]
|
| D | PredIteratorCache.h | 42 BasicBlock **GetPreds(BasicBlock *BB) { in GetPreds() argument 43 BasicBlock **&Entry = BlockToPredsMap[BB]; in GetPreds() 47 SmallVector<BasicBlock *, 32> PredCache(predecessors(BB)); in GetPreds() 50 BlockToPredCountMap[BB] = PredCache.size() - 1; in GetPreds() 57 unsigned GetNumPreds(BasicBlock *BB) const { in GetNumPreds() argument 58 auto Result = BlockToPredCountMap.find(BB); in GetNumPreds() 61 return BlockToPredCountMap[BB] = pred_size(BB); in GetNumPreds() 65 size_t size(BasicBlock *BB) const { return GetNumPreds(BB); } in size() argument 66 ArrayRef<BasicBlock *> get(BasicBlock *BB) { in get() argument 67 return ArrayRef(GetPreds(BB), GetNumPreds(BB)); in get()
|
| /openbsd/src/gnu/llvm/llvm/lib/Target/AMDGPU/ |
| D | AMDGPUUnifyDivergentExitNodes.cpp | 118 BasicBlock &BB) { in isUniformlyReached() argument 119 SmallVector<BasicBlock *, 8> Stack(predecessors(&BB)); in isUniformlyReached() 159 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet() 163 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); in unifyReturnBlockSet() 166 BB->getTerminator()->eraseFromParent(); in unifyReturnBlockSet() 167 BranchInst::Create(NewRetBlock, BB); in unifyReturnBlockSet() 168 Updates.push_back({DominatorTree::Insert, BB, NewRetBlock}); in unifyReturnBlockSet() 175 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet() 177 simplifyCFG(BB, *TTI, RequireAndPreserveDomTree ? &DTU : nullptr, in unifyReturnBlockSet() 216 PDT.roots(), [&](auto BB) { return !isUniformlyReached(DA, *BB); }); in runOnFunction() argument [all …]
|
| D | SIAnnotateControlFlow.cpp | 66 bool isTopOfStack(BasicBlock *BB); 70 void push(BasicBlock *BB, Value *Saved); 74 bool hasKill(const BasicBlock *BB); 88 bool closeControlFlow(BasicBlock *BB); 154 bool SIAnnotateControlFlow::isTopOfStack(BasicBlock *BB) { in isTopOfStack() argument 155 return !Stack.empty() && Stack.back().first == BB; in isTopOfStack() 164 void SIAnnotateControlFlow::push(BasicBlock *BB, Value *Saved) { in push() argument 165 Stack.push_back(std::pair(BB, Saved)); in push() 187 bool SIAnnotateControlFlow::hasKill(const BasicBlock *BB) { in hasKill() argument 188 for (const Instruction &I : *BB) { in hasKill() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Transforms/Scalar/ |
| D | JumpThreading.h | 113 bool processBlock(BasicBlock *BB); 114 bool maybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB); 115 void updateSSA(BasicBlock *BB, BasicBlock *NewBB, 121 bool tryThreadEdge(BasicBlock *BB, 124 void threadEdge(BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, 127 BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs); 130 Value *V, BasicBlock *BB, jumpthreading::PredValueInfo &Result, 134 computeValueKnownInPredecessors(Value *V, BasicBlock *BB, 139 return computeValueKnownInPredecessorsImpl(V, BB, Result, Preference, 143 Constant *evaluateOnPredecessorEdge(BasicBlock *BB, BasicBlock *PredPredBB, [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Transforms/Utils/ |
| D | SampleProfileInference.h | 171 bool isExit(const BasicBlockT *BB); 189 for (auto *BB : depth_first_ext(&F, Reachable)) 190 (void)BB /* Mark all reachable blocks */; 195 for (const auto &BB : F) { 197 if (isExit(&BB)) { 198 for (auto *RBB : inverse_depth_first_ext(&BB, InverseReachable)) 208 for (const auto &BB : F) { 209 if (Reachable.count(&BB) && InverseReachable.count(&BB)) { 210 BlockIndex[&BB] = BasicBlocks.size(); 211 BasicBlocks.push_back(&BB); [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Transforms/Utils/ |
| D | BasicBlockUtils.cpp | 65 for (auto *BB : BBs) { in detachDeadBlocks() local 69 for (BasicBlock *Succ : successors(BB)) { in detachDeadBlocks() 70 Succ->removePredecessor(BB, KeepOneInputPHIs); in detachDeadBlocks() 72 Updates->push_back({DominatorTree::Delete, BB, Succ}); in detachDeadBlocks() 76 while (!BB->empty()) { in detachDeadBlocks() 77 Instruction &I = BB->back(); in detachDeadBlocks() 85 BB->back().eraseFromParent(); in detachDeadBlocks() 87 new UnreachableInst(BB->getContext(), BB); in detachDeadBlocks() 88 assert(BB->size() == 1 && in detachDeadBlocks() 89 isa<UnreachableInst>(BB->getTerminator()) && in detachDeadBlocks() [all …]
|
| D | SSAUpdater.cpp | 61 bool SSAUpdater::HasValueForBlock(BasicBlock *BB) const { in HasValueForBlock() 62 return getAvailableVals(AV).count(BB); in HasValueForBlock() 65 Value *SSAUpdater::FindValueForBlock(BasicBlock *BB) const { in FindValueForBlock() 66 return getAvailableVals(AV).lookup(BB); in FindValueForBlock() 69 void SSAUpdater::AddAvailableValue(BasicBlock *BB, Value *V) { in AddAvailableValue() argument 73 getAvailableVals(AV)[BB] = V; in AddAvailableValue() 92 Value *SSAUpdater::GetValueAtEndOfBlock(BasicBlock *BB) { in GetValueAtEndOfBlock() argument 93 Value *Res = GetValueAtEndOfBlockInternal(BB); in GetValueAtEndOfBlock() 97 Value *SSAUpdater::GetValueInMiddleOfBlock(BasicBlock *BB) { in GetValueInMiddleOfBlock() argument 100 if (!HasValueForBlock(BB)) in GetValueInMiddleOfBlock() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Analysis/ |
| D | InstructionPrecedenceTracking.h | 37 void fill(const BasicBlock *BB); 43 void validate(const BasicBlock *BB) const; 54 const Instruction *getFirstSpecialInstruction(const BasicBlock *BB); 58 bool hasSpecialInstructions(const BasicBlock *BB); 77 void insertInstructionTo(const Instruction *Inst, const BasicBlock *BB); 103 const Instruction *getFirstICFI(const BasicBlock *BB) { in getFirstICFI() argument 104 return getFirstSpecialInstruction(BB); in getFirstICFI() 109 bool hasICF(const BasicBlock *BB) { in hasICF() argument 110 return hasSpecialInstructions(BB); in hasICF() 125 const Instruction *getFirstMemoryWrite(const BasicBlock *BB) { in getFirstMemoryWrite() argument [all …]
|
| /openbsd/src/gnu/llvm/llvm/tools/llvm-reduce/deltas/ |
| D | ReduceBasicBlocks.cpp | 35 static void replaceBranchTerminator(BasicBlock &BB, in replaceBranchTerminator() argument 37 auto *Term = BB.getTerminator(); in replaceBranchTerminator() 39 for (auto *Succ : successors(&BB)) { in replaceBranchTerminator() 77 auto *FnRetTy = BB.getParent()->getReturnType(); in replaceBranchTerminator() 78 ReturnInst::Create(BB.getContext(), in replaceBranchTerminator() 80 &BB); in replaceBranchTerminator() 85 BranchInst::Create(ChunkSuccessors[0], &BB); in replaceBranchTerminator() 89 IndirectBrInst::Create(Address, ChunkSuccessors.size(), &BB); in replaceBranchTerminator() 144 for (auto *BB : depth_first_ext(&Entry, Reachable)) in extractBasicBlocksFromModule() local 145 (void)BB; in extractBasicBlocksFromModule() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/IR/ |
| D | SafepointIRVerifier.cpp | 85 const BasicBlock* BB = PN->getParent(); in hasLiveIncomingEdge() local 87 for (const_pred_iterator PredIt(BB), End(BB, true); PredIt != End; ++PredIt) { in hasLiveIncomingEdge() 100 bool isDeadBlock(const BasicBlock *BB) const { in isDeadBlock() 101 return DeadBlocks.count(BB); in isDeadBlock() 114 bool hasLiveIncomingEdges(const BasicBlock *BB) const { in hasLiveIncomingEdges() 116 for (const_pred_iterator PredIt(BB), End(BB, true); PredIt != End; ++PredIt) { in hasLiveIncomingEdges() 129 for (const BasicBlock &BB : F) in processFunction() local 130 if (!DT.isReachableFromEntry(&BB)) in processFunction() 131 DeadBlocks.insert(&BB); in processFunction() 135 for (const BasicBlock *BB : RPOT) { in processFunction() local [all …]
|
| /openbsd/src/gnu/llvm/llvm/tools/llvm-stress/ |
| D | llvm-stress.cpp | 160 : BB(Block), PT(PT), Ran(R), Context(BB->getContext()) { in Modifier() 323 BasicBlock *BB; member 338 LoadModifier(BasicBlock *BB, PieceTable *PT, Random *R) in LoadModifier() 339 : Modifier(BB, PT, R) {} in LoadModifier() 347 Value *V = new LoadInst(Ty, Ptr, "L", BB->getTerminator()); in Act() 353 StoreModifier(BasicBlock *BB, PieceTable *PT, Random *R) in StoreModifier() 354 : Modifier(BB, PT, R) {} in StoreModifier() 369 new StoreInst(Val, Ptr, BB->getTerminator()); in Act() 374 BinModifier(BasicBlock *BB, PieceTable *PT, Random *R) in BinModifier() 375 : Modifier(BB, PT, R) {} in BinModifier() [all …]
|