/third_party/skia/third_party/externals/spirv-tools/source/ |
H A D | cfa.h | 30 // Control Flow Analysis of control flow graphs of basic block nodes |BB|. 31 template <class BB> 33 using bb_ptr = BB*; 34 using cbb_ptr = const BB*; 35 using bb_iter = typename std::vector<BB*>::const_iterator; 36 using get_blocks_func = std::function<const std::vector<BB*>*(const BB*)>; 76 const BB* entry, get_blocks_func successor_func, 106 static std::vector<std::pair<BB*, BB*>> CalculateDominator 299 ComputeAugmentedCFG( std::vector<BB*>& ordered_blocks, BB* pseudo_entry_block, BB* pseudo_exit_block, std::unordered_map<const BB*, std::vector<BB*>>* augmented_successors_map, std::unordered_map<const BB*, std::vector<BB*>>* augmented_predecessors_map, get_blocks_func succ_func, get_blocks_func pred_func) ComputeAugmentedCFG() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/SPIRV-Tools/source/ |
H A D | cfa.h | 30 // Control Flow Analysis of control flow graphs of basic block nodes |BB|. 31 template <class BB> 33 using bb_ptr = BB*; 34 using cbb_ptr = const BB*; 35 using bb_iter = typename std::vector<BB*>::const_iterator; 36 using get_blocks_func = std::function<const std::vector<BB*>*(const BB*)>; 76 const BB* entry, get_blocks_func successor_func, 106 static std::vector<std::pair<BB*, BB*>> CalculateDominator 299 ComputeAugmentedCFG( std::vector<BB*>& ordered_blocks, BB* pseudo_entry_block, BB* pseudo_exit_block, std::unordered_map<const BB*, std::vector<BB*>>* augmented_successors_map, std::unordered_map<const BB*, std::vector<BB*>>* augmented_predecessors_map, get_blocks_func succ_func, get_blocks_func pred_func) ComputeAugmentedCFG() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/Mips/ |
H A 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...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/ |
H A D | BranchProbabilityInfo.cpp | 150 static void UpdatePDTWorklist(const BasicBlock *BB, PostDominatorTree *PDT, in UpdatePDTWorklist() argument 156 PDT->getDescendants(const_cast<BasicBlock *>(BB), Descendants); in UpdatePDTWorklist() 157 for (auto *BB : Descendants) in UpdatePDTWorklist() 158 if (TargetSet.insert(BB).second) in UpdatePDTWorklist() 159 for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) in UpdatePDTWorklist() 169 for (auto &BB : F) { in computePostDominatedByUnreachable() 170 const Instruction *TI = BB.getTerminator(); in computePostDominatedByUnreachable() 177 BB.getTerminatingDeoptimizeCall()) in computePostDominatedByUnreachable() 178 UpdatePDTWorklist(&BB, PD in computePostDominatedByUnreachable() 183 const BasicBlock *BB = WorkList.pop_back_val(); computePostDominatedByUnreachable() local 212 const BasicBlock *BB = WorkList.pop_back_val(); computePostDominatedByColdCall() local 233 calcUnreachableHeuristics(const BasicBlock *BB) calcUnreachableHeuristics() argument 277 calcMetadataWeights(const BasicBlock *BB) calcMetadataWeights() argument 379 calcColdCallHeuristics(const BasicBlock *BB) calcColdCallHeuristics() argument 423 calcPointerHeuristics(const BasicBlock *BB) calcPointerHeuristics() argument 456 getSCCNum(const BasicBlock *BB, const BranchProbabilityInfo::SccInfo &SccI) getSCCNum() argument 465 isSCCHeader(const BasicBlock *BB, int SccNum, BranchProbabilityInfo::SccInfo &SccI) isSCCHeader() argument 492 computeUnlikelySuccessors(const BasicBlock *BB, Loop *L, SmallPtrSetImpl<const BasicBlock*> &UnlikelyBlocks) computeUnlikelySuccessors() argument 597 calcLoopBranchHeuristics(const BasicBlock *BB, const LoopInfo &LI, SccInfo &SccI) calcLoopBranchHeuristics() argument 682 calcZeroHeuristics(const BasicBlock *BB, const TargetLibraryInfo *TLI) calcZeroHeuristics() argument 801 calcFloatingPointHeuristics(const BasicBlock *BB) calcFloatingPointHeuristics() argument 843 calcInvokeHeuristics(const BasicBlock *BB) calcInvokeHeuristics() argument 964 eraseBlock(const BasicBlock *BB) eraseBlock() argument [all...] |
H A D | CFG.cpp | 29 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges() local 30 if (succ_empty(BB)) in FindFunctionBackedges() 37 Visited.insert(BB); in FindFunctionBackedges() 38 VisitStack.push_back(std::make_pair(BB, succ_begin(BB))); in FindFunctionBackedges() 39 InStack.insert(BB); in FindFunctionBackedges() 47 BB = *I++; in FindFunctionBackedges() 48 if (Visited.insert(BB).second) { in FindFunctionBackedges() 53 if (InStack.count(BB)) in FindFunctionBackedges() 54 Result.push_back(std::make_pair(ParentBB, BB)); in FindFunctionBackedges() 72 GetSuccessorNumber(const BasicBlock *BB, const BasicBlock *Succ) GetSuccessorNumber() argument 121 getOutermostLoop(const LoopInfo *LI, const BasicBlock *BB) getOutermostLoop() argument 162 BasicBlock *BB = Worklist.pop_back_val(); isPotentiallyReachableFromMany() local 233 BasicBlock *BB = const_cast<BasicBlock *>(A->getParent()); isPotentiallyReachable() local [all...] |
H A D | InstructionPrecedenceTracking.cpp | 36 const BasicBlock *BB) { in getFirstSpecialInstruction() 43 validate(BB); in getFirstSpecialInstruction() 46 if (FirstSpecialInsts.find(BB) == FirstSpecialInsts.end()) { in getFirstSpecialInstruction() 47 fill(BB); in getFirstSpecialInstruction() 48 assert(FirstSpecialInsts.find(BB) != FirstSpecialInsts.end() && "Must be!"); in getFirstSpecialInstruction() 50 return FirstSpecialInsts[BB]; in getFirstSpecialInstruction() 54 const BasicBlock *BB) { in hasSpecialInstructions() 55 return getFirstSpecialInstruction(BB) != nullptr; in hasSpecialInstructions() 65 void InstructionPrecedenceTracking::fill(const BasicBlock *BB) { in fill() argument 66 FirstSpecialInsts.erase(BB); in fill() 35 getFirstSpecialInstruction( const BasicBlock *BB) getFirstSpecialInstruction() argument 53 hasSpecialInstructions( const BasicBlock *BB) hasSpecialInstructions() argument 103 insertInstructionTo(const Instruction *Inst, const BasicBlock *BB) insertInstructionTo() argument [all...] |
H A D | LazyValueInfo.cpp | 184 void insertResult(Value *Val, BasicBlock *BB, in insertResult() argument 186 SeenBlocks.insert(BB); in insertResult() 191 OverDefinedCache[BB].insert(Val); in insertResult() 199 It->second->BlockVals[BB] = Result; in insertResult() 203 bool isOverdefined(Value *V, BasicBlock *BB) const { in isOverdefined() 204 auto ODI = OverDefinedCache.find(BB); in isOverdefined() 212 bool hasCachedValueInfo(Value *V, BasicBlock *BB) const { in hasCachedValueInfo() 213 if (isOverdefined(V, BB)) in hasCachedValueInfo() 220 return I->second->BlockVals.count(BB); in hasCachedValueInfo() 223 ValueLatticeElement getCachedValueInfo(Value *V, BasicBlock *BB) cons 279 eraseBlock(BasicBlock *BB) eraseBlock() argument 481 eraseBlock(BasicBlock *BB) eraseBlock() argument 564 hasBlockValue(Value *Val, BasicBlock *BB) hasBlockValue() argument 572 getBlockValue(Value *Val, BasicBlock *BB) getBlockValue() argument 598 solveBlockValue(Value *Val, BasicBlock *BB) solveBlockValue() argument 624 solveBlockValueImpl(ValueLatticeElement &Res, Value *Val, BasicBlock *BB) solveBlockValueImpl() argument 706 isObjectDereferencedInBlock(Value *Val, BasicBlock *BB) isObjectDereferencedInBlock() argument 720 solveBlockValueNonLocal(ValueLatticeElement &BBLV, Value *Val, BasicBlock *BB) solveBlockValueNonLocal() argument 784 solveBlockValuePHINode(ValueLatticeElement &BBLV, PHINode *PN, BasicBlock *BB) solveBlockValuePHINode() argument 858 solveBlockValueSelect(ValueLatticeElement &BBLV, SelectInst *SI, BasicBlock *BB) solveBlockValueSelect() argument 1000 getRangeForOperand(unsigned Op, Instruction *I, BasicBlock *BB) getRangeForOperand() argument 1019 solveBlockValueCast(ValueLatticeElement &BBLV, CastInst *CI, BasicBlock *BB) solveBlockValueCast() argument 1065 solveBlockValueBinaryOpImpl( ValueLatticeElement &BBLV, Instruction *I, BasicBlock *BB, std::function<ConstantRange(const ConstantRange &, const ConstantRange &)> OpFn) solveBlockValueBinaryOpImpl() argument 1085 solveBlockValueBinaryOp(ValueLatticeElement &BBLV, BinaryOperator *BO, BasicBlock *BB) solveBlockValueBinaryOp() argument [all...] |
H A D | MemorySSAUpdater.cpp | 42 BasicBlock *BB, in getPreviousDefRecursive() 46 auto Cached = CachedPreviousDef.find(BB); in getPreviousDefRecursive() 51 if (!MSSA->DT->isReachableFromEntry(BB)) in getPreviousDefRecursive() 54 if (BasicBlock *Pred = BB->getUniquePredecessor()) { in getPreviousDefRecursive() 55 VisitedBlocks.insert(BB); in getPreviousDefRecursive() 58 CachedPreviousDef.insert({BB, Result}); in getPreviousDefRecursive() 62 if (VisitedBlocks.count(BB)) { in getPreviousDefRecursive() 66 MemoryAccess *Result = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive() 67 CachedPreviousDef.insert({BB, Result}); in getPreviousDefRecursive() 71 if (VisitedBlocks.insert(BB) in getPreviousDefRecursive() 41 getPreviousDefRecursive( BasicBlock *BB, DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) getPreviousDefRecursive() argument 177 getPreviousDefFromEnd( BasicBlock *BB, DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) getPreviousDefFromEnd() argument 289 setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, MemoryAccess *NewDef) setMemoryPhiValueForBlock() argument 582 cloneUsesAndDefs(BasicBlock *BB, BasicBlock *NewBB, const ValueToValueMapTy &VMap, PhiToDefMap &MPhiMap, bool CloneWasSimplified) cloneUsesAndDefs() argument 729 updateForClonedBlockIntoPred( BasicBlock *BB, BasicBlock *P1, const ValueToValueMapTy &VM) updateForClonedBlockIntoPred() argument 915 BasicBlock *BB = Edge.getTo(); applyInsertUpdates() local 924 auto *BB = BBPredPair.first; applyInsertUpdates() local 961 BasicBlock *BB = Edge.getTo(); applyInsertUpdates() local 968 auto *BB = BBPredPair.first; applyInsertUpdates() local 1126 moveTo(MemoryUseOrDef *What, BasicBlock *BB, WhereType Where) moveTo() argument 1160 moveToPlace(MemoryUseOrDef *What, BasicBlock *BB, MemorySSA::InsertionPlace Where) moveToPlace() argument 1384 const BasicBlock *BB = I->getParent(); changeToUnreachable() local 1406 const BasicBlock *BB = BI->getParent(); changeCondBranchToUnconditionalTo() local 1420 createMemoryAccessInBB( Instruction *I, MemoryAccess *Definition, const BasicBlock *BB, MemorySSA::InsertionPlace Point) createMemoryAccessInBB() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/ |
H A D | ADCE.cpp | 104 BasicBlock *BB = nullptr; member 106 /// Cache of BB->getTerminator(). 126 bool isLive(BasicBlock *BB) { return BlockInfo[BB].Live; } in isLive() argument 164 void markLive(BlockInfoType &BB); 165 void markLive(BasicBlock *BB) { markLive(BlockInfo[BB]); } in markLive() argument 192 void makeUnconditional(BasicBlock *BB, BasicBlock *Target); 225 for (auto &BB : F) { in initialize() 226 NumInsts += BB in initialize() 261 insert(BasicBlock *BB) initialize() argument 266 completed(BasicBlock *BB) initialize() argument 270 onStack(BasicBlock *BB) initialize() argument 299 auto *BB = PDTChild->getBlock(); initialize() local 314 auto *BB = &F.getEntryBlock(); initialize() local 649 makeUnconditional(BasicBlock *BB, BasicBlock *Target) makeUnconditional() argument [all...] |
H A D | JumpThreading.cpp | 189 // [Block BB] 211 static void updatePredecessorProfileMetadata(PHINode *PN, BasicBlock *BB) { in updatePredecessorProfileMetadata() argument 212 BranchInst *CondBr = dyn_cast<BranchInst>(BB->getTerminator()); in updatePredecessorProfileMetadata() 260 auto PredOutEdge = GetPredOutEdge(PN->getIncomingBlock(i), BB); in updatePredecessorProfileMetadata() 383 for (auto &BB : F) in runImpl() 384 if (!DT.isReachableFromEntry(&BB)) in runImpl() 385 Unreachable.insert(&BB); in runImpl() 394 for (auto &BB : F) { in runImpl() 395 if (Unreachable.count(&BB)) in runImpl() 397 while (ProcessBlock(&BB)) // Threa in runImpl() 453 auto *BB = Cond->getParent(); ReplaceFoldableUses() local 476 getJumpThreadDuplicationCost(BasicBlock *BB, Instruction *StopAt, unsigned Threshold) getJumpThreadDuplicationCost() argument 593 ComputeValueKnownInPredecessorsImpl( Value *V, BasicBlock *BB, PredValueInfo &Result, ConstantPreference Preference, DenseSet<std::pair<Value *, BasicBlock *>> &RecursionSet, Instruction *CxtI) ComputeValueKnownInPredecessorsImpl() argument 964 GetBestDestForJumpOnUndef(BasicBlock *BB) GetBestDestForJumpOnUndef() argument 982 hasAddressTakenAndUsed(BasicBlock *BB) hasAddressTakenAndUsed() argument 994 ProcessBlock(BasicBlock *BB) ProcessBlock() argument 1201 ProcessImpliedCondition(BasicBlock *BB) ProcessImpliedCondition() argument 1241 isOpDefinedInBlock(Value *Op, BasicBlock *BB) isOpDefinedInBlock() argument 1490 FindMostPopularDest(BasicBlock *BB, const SmallVectorImpl<std::pair<BasicBlock *, BasicBlock *>> &PredToDestList) FindMostPopularDest() argument 1551 ProcessThreadableEdges(Value *Cond, BasicBlock *BB, ConstantPreference Preference, Instruction *CxtI) ProcessThreadableEdges() argument 1727 BasicBlock *BB = PN->getParent(); ProcessBranchOnPHI() local 1756 BasicBlock *BB = BO->getParent(); ProcessBranchOnXOR() local 1883 MaybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB) MaybeMergeBasicBlockIntoOnlyPred() argument 1934 UpdateSSA( BasicBlock *BB, BasicBlock *NewBB, DenseMap<Instruction *, Value *> &ValueMapping) UpdateSSA() argument 2019 TryThreadEdge( BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, BasicBlock *SuccBB) TryThreadEdge() argument 2058 ThreadEdge(BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, BasicBlock *SuccBB) ThreadEdge() argument 2144 SplitBlockPreds(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, const char *Suffix) SplitBlockPreds() argument 2185 doesBlockHaveProfileData(BasicBlock *BB) doesBlockHaveProfileData() argument 2205 UpdateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB, BasicBlock *NewBB, BasicBlock *SuccBB) UpdateBlockFreqAndEdgeWeight() argument 2303 DuplicateCondBranchOnPHIIntoPred( BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs) DuplicateCondBranchOnPHIIntoPred() argument 2342 << DuplicationCost << " block is:" << *BB << "\\n"); DuplicateCondBranchOnPHIIntoPred() local 2429 UnfoldSelectInstr(BasicBlock *Pred, BasicBlock *BB, SelectInst *SI, PHINode *SIUse, unsigned Idx) UnfoldSelectInstr() argument 2464 TryToUnfoldSelect(SwitchInst *SI, BasicBlock *BB) TryToUnfoldSelect() argument 2502 TryToUnfoldSelect(CmpInst *CondCmp, BasicBlock *BB) TryToUnfoldSelect() argument 2567 TryToUnfoldSelectInCurrBB(BasicBlock *BB) TryToUnfoldSelectInCurrBB() argument 2657 ProcessGuards(BasicBlock *BB) ProcessGuards() argument 2691 ThreadGuard(BasicBlock *BB, IntrinsicInst *Guard, BranchInst *BI) ThreadGuard() 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) { in getOnlyLiveSuccessor() argument 59 Instruction *TI = BB->getTerminator(); in getOnlyLiveSuccessor() 84 /// Removes \p BB from all loops from [FirstLoop, LastLoop) in parent chain. 85 static void removeBlockFromLoops(BasicBlock *BB, Loop *FirstLoop, in removeBlockFromLoops() argument 89 assert(FirstLoop->contains(BB) && "Must be a loop block!"); in removeBlockFromLoops() 92 Current->removeBlockFromLoop(BB); in removeBlockFromLoops() 100 for (BasicBlock *BB : BBs) { in getInnermostLoopFor() 101 Loop *BBL = LI.getLoopFor(BB); in getInnermostLoopFor() 168 for (const BasicBlock *BB in dump() 198 BasicBlock *BB = *I; hasIrreducibleCFG() local 230 BasicBlock *BB = *I; analyze() local 302 BasicBlock *BB = *I; analyze() local [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/ |
H A D | MachineSSAUpdater.cpp | 66 bool MachineSSAUpdater::HasValueForBlock(MachineBasicBlock *BB) const { in HasValueForBlock() 67 return getAvailableVals(AV).count(BB); in HasValueForBlock() 72 void MachineSSAUpdater::AddAvailableValue(MachineBasicBlock *BB, unsigned V) { in AddAvailableValue() argument 73 getAvailableVals(AV)[BB] = V; in AddAvailableValue() 78 unsigned MachineSSAUpdater::GetValueAtEndOfBlock(MachineBasicBlock *BB) { in GetValueAtEndOfBlock() argument 79 return GetValueAtEndOfBlockInternal(BB); in GetValueAtEndOfBlock() 83 unsigned LookForIdenticalPHI(MachineBasicBlock *BB, in LookForIdenticalPHI() argument 85 if (BB->empty()) in LookForIdenticalPHI() 88 MachineBasicBlock::iterator I = BB->begin(); in LookForIdenticalPHI() 95 while (I != BB in LookForIdenticalPHI() 116 InsertNewDef(unsigned Opcode, MachineBasicBlock *BB, MachineBasicBlock::iterator I, const TargetRegisterClass *RC, MachineRegisterInfo *MRI, const TargetInstrInfo *TII) InsertNewDef() argument 143 GetValueInMiddleOfBlock(MachineBasicBlock *BB) GetValueInMiddleOfBlock() argument 248 BlkSucc_begin(BlkT *BB) BlkSucc_begin() argument 249 BlkSucc_end(BlkT *BB) BlkSucc_end() argument 282 FindPredecessorBlocks(MachineBasicBlock *BB, SmallVectorImpl<MachineBasicBlock*> *Preds) FindPredecessorBlocks() argument 291 GetUndefVal(MachineBasicBlock *BB, MachineSSAUpdater *Updater) GetUndefVal() argument 303 CreateEmptyPHI(MachineBasicBlock *BB, unsigned NumPreds, MachineSSAUpdater *Updater) CreateEmptyPHI() argument 354 GetValueAtEndOfBlockInternal(MachineBasicBlock *BB) GetValueAtEndOfBlockInternal() argument [all...] |
H A D | IfConversion.cpp | 100 ICNotClassfied, // BB data valid, but not classified. 102 ICSimple, // BB is entry of an one split, no rejoin sub-CFG. 106 ICTriangle, // BB is entry of a triangle sub-CFG. 107 ICDiamond, // BB is entry of a diamond sub-CFG. 108 ICForkedDiamond // BB is entry of an almost diamond sub-CFG, with a 119 /// IsDone - True if BB is not to be considered for ifcvt. 120 /// IsBeingAnalyzed - True if BB is currently being analyzed. 121 /// IsAnalyzed - True if BB has been analyzed (info is still valid). 122 /// IsEnqueued - True if BB has been enqueued to be ifcvt'ed. 124 /// HasFallThrough - True if BB ma 149 MachineBasicBlock *BB = nullptr; global() member 285 MeetIfcvtSizeLimit(MachineBasicBlock &BB, unsigned Cycle, unsigned Extra, BranchProbability Prediction) const MeetIfcvtSizeLimit() argument 618 findFalseBlock(MachineBasicBlock *BB, MachineBasicBlock *TrueBB) findFalseBlock() argument 1226 MachineBasicBlock *BB = State.MBB; AnalyzeBlock() local [all...] |
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(); in eraseDeadBBsAndChildren() local 160 if (pred_begin(BB) != pred_end(BB)) in eraseDeadBBsAndChildren() 162 WL.append(succ_begin(BB), succ_end(BB)); in eraseDeadBBsAndChildren() 163 DeleteDeadBlock(BB); in eraseDeadBBsAndChildren() 182 // delete all following instructions within the BB, an in prepareThrows() 191 auto *BB = ThrowI->getParent(); prepareThrows() local 276 prepareEHPad(BasicBlock *BB, bool NeedLSDA, unsigned Index) prepareEHPad() argument [all...] |
/third_party/spirv-tools/source/ |
H A D | cfa.h | 30 // Control Flow Analysis of control flow graphs of basic block nodes |BB|. 31 template <class BB> 33 using bb_ptr = BB*; 34 using cbb_ptr = const BB*; 35 using bb_iter = typename std::vector<BB*>::const_iterator; 36 using get_blocks_func = std::function<const std::vector<BB*>*(const BB*)>; 73 static void DepthFirstTraversal(const BB* entry, 102 const BB* entry, get_blocks_func successor_func, 133 static std::vector<std::pair<BB*, B 348 ComputeAugmentedCFG( std::vector<BB*>& ordered_blocks, BB* pseudo_entry_block, BB* pseudo_exit_block, std::unordered_map<const BB*, std::vector<BB*>>* augmented_successors_map, std::unordered_map<const BB*, std::vector<BB*>>* augmented_predecessors_map, get_blocks_func succ_func, get_blocks_func pred_func) ComputeAugmentedCFG() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Utils/ |
H A D | BasicBlockUtils.cpp | 58 for (auto *BB : BBs) { in DetatchDeadBlocks() 62 for (BasicBlock *Succ : successors(BB)) { in DetatchDeadBlocks() 63 Succ->removePredecessor(BB, KeepOneInputPHIs); in DetatchDeadBlocks() 65 Updates->push_back({DominatorTree::Delete, BB, Succ}); in DetatchDeadBlocks() 69 while (!BB->empty()) { in DetatchDeadBlocks() 70 Instruction &I = BB->back(); in DetatchDeadBlocks() 78 BB->getInstList().pop_back(); in DetatchDeadBlocks() 80 new UnreachableInst(BB->getContext(), BB); in DetatchDeadBlocks() 81 assert(BB in DetatchDeadBlocks() 88 DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU, bool KeepOneInputPHIs) DeleteDeadBlock() argument 129 BasicBlock *BB = &*I; EliminateUnreachableBlocks() local 139 FoldSingleEntryPHINodes(BasicBlock *BB, MemoryDependenceResults *MemDep) FoldSingleEntryPHINodes() argument 156 DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI) DeleteDeadPHIs() argument 171 MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU, LoopInfo *LI, MemorySSAUpdater *MSSAU, MemoryDependenceResults *MemDep, bool PredecessorWithTwoSuccessors) MergeBlockIntoPredecessor() argument 338 removeRedundantDbgInstrsUsingBackwardScan(BasicBlock *BB) removeRedundantDbgInstrsUsingBackwardScan() argument 385 removeRedundantDbgInstrsUsingForwardScan(BasicBlock *BB) removeRedundantDbgInstrsUsingForwardScan() argument 413 RemoveRedundantDbgInstrs(BasicBlock *BB) RemoveRedundantDbgInstrs() argument 474 SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU) SplitEdge() argument 709 SplitBlockPredecessors(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, const char *Suffix, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) SplitBlockPredecessors() argument 882 FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB, BasicBlock *Pred, DomTreeUpdater *DTU) FoldReturnIntoUncondBranch() argument 997 GetIfCondition(BasicBlock *BB, BasicBlock *&IfTrue, BasicBlock *&IfFalse) GetIfCondition() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/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) { in GetPreds() argument 43 BasicBlock **&Entry = BlockToPredsMap[BB]; in GetPreds() 47 SmallVector<BasicBlock *, 32> PredCache(pred_begin(BB), pred_end(BB)); in GetPreds() 50 BlockToPredCountMap[BB] = PredCache.size() - 1; in GetPreds() 57 unsigned GetNumPreds(BasicBlock *BB) const { in GetNumPreds() 58 auto Result = BlockToPredCountMap.find(BB); in GetNumPreds() 66 get(BasicBlock *BB) get() argument [all...] |
H A D | InstIterator.h | 38 BB_i_t BB; // BasicBlocksType::iterator member in llvm::InstIterator 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() [all...] |
H A D | CFG.h | 108 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } in pred_begin() argument 109 inline const_pred_iterator pred_begin(const BasicBlock *BB) { in pred_begin() argument 110 return const_pred_iterator(BB); in pred_begin() 112 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} in pred_end() argument 113 inline const_pred_iterator pred_end(const BasicBlock *BB) { in pred_end() argument 114 return const_pred_iterator(BB, true); in pred_end() 116 inline bool pred_empty(const BasicBlock *BB) { in pred_empty() argument 117 return pred_begin(BB) in pred_empty() 121 pred_size(const BasicBlock *BB) pred_size() argument 124 predecessors(BasicBlock *BB) predecessors() argument 127 predecessors(const BasicBlock *BB) predecessors() argument 266 succ_begin(BasicBlock *BB) succ_begin() argument 269 succ_begin(const BasicBlock *BB) succ_begin() argument 272 succ_end(BasicBlock *BB) succ_end() argument 275 succ_end(const BasicBlock *BB) succ_end() argument 278 succ_empty(const BasicBlock *BB) succ_empty() argument 281 succ_size(const BasicBlock *BB) succ_size() argument 284 successors(BasicBlock *BB) successors() argument 287 successors(const BasicBlock *BB) successors() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPUUnifyDivergentExitNodes.cpp | 97 /// \returns true if \p BB is reachable through only uniform branches. 100 BasicBlock &BB) { in isUniformlyReached() 104 for (BasicBlock *Pred : predecessors(&BB)) in isUniformlyReached() 123 for (BasicBlock &BB : F) { in removeDoneExport() 124 for (Instruction &I : BB) { in removeDoneExport() 177 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet() 181 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); in unifyReturnBlockSet() 184 BB->getTerminator()->eraseFromParent(); in unifyReturnBlockSet() 185 BranchInst::Create(NewRetBlock, BB); in unifyReturnBlockSet() 99 isUniformlyReached(const LegacyDivergenceAnalysis &DA, BasicBlock &BB) isUniformlyReached() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/VE/ |
H A D | VEInstrInfo.cpp | 77 MachineBasicBlock *BB = &MBB; in expandExtendStackPseudo() local 78 const BasicBlock *LLVM_BB = BB->getBasicBlock(); in expandExtendStackPseudo() 81 MachineFunction::iterator It = ++(BB->getIterator()); in expandExtendStackPseudo() 85 // Transfer the remainder of BB and its successor edges to sinkMBB. in expandExtendStackPseudo() 86 sinkMBB->splice(sinkMBB->begin(), BB, in expandExtendStackPseudo() 88 BB->end()); in expandExtendStackPseudo() 89 sinkMBB->transferSuccessorsAndUpdatePHIs(BB); in expandExtendStackPseudo() 92 BB->addSuccessor(syscallMBB); in expandExtendStackPseudo() 93 BB->addSuccessor(sinkMBB); in expandExtendStackPseudo() 94 BuildMI(BB, d in expandExtendStackPseudo() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/IR/ |
H A D | SafepointIRVerifier.cpp | 86 const BasicBlock* BB = PN->getParent(); in hasLiveIncomingEdge() local 88 for (const_pred_iterator PredIt(BB), End(BB, true); PredIt != End; ++PredIt) { in hasLiveIncomingEdge() 101 bool isDeadBlock(const BasicBlock *BB) const { in isDeadBlock() 102 return DeadBlocks.count(BB); in isDeadBlock() 115 bool hasLiveIncomingEdges(const BasicBlock *BB) const { in hasLiveIncomingEdges() 117 for (const_pred_iterator PredIt(BB), End(BB, true); PredIt != End; ++PredIt) { in hasLiveIncomingEdges() 130 for (const BasicBlock &BB : F) in processFunction() 131 if (!DT.isReachableFromEntry(&BB)) in processFunction() 159 addDeadBlock(const BasicBlock *BB) addDeadBlock() argument 562 getBasicBlockState(const BasicBlock *BB) getBasicBlockState() argument 616 const BasicBlock *BB = Worklist.pop_back_val(); recalculateBBsStates() local 646 removeValidUnrelocatedDefs(const BasicBlock *BB, const BasicBlockState *BBS, AvailableValueSet &Contribution) removeValidUnrelocatedDefs() argument 734 gatherDominatingDefs(const BasicBlock *BB, AvailableValueSet &Result, const DominatorTree &DT) gatherDominatingDefs() argument 759 transferBlock(const BasicBlock *BB, BasicBlockState &BBS, bool ContributionChanged) transferBlock() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/IPO/ |
H A D | PruneEH.cpp | 52 static void DeleteBasicBlock(BasicBlock *BB, CallGraph &CG); 109 for (const BasicBlock &BB : *F) { in runImpl() 110 const Instruction *TI = BB.getTerminator(); in runImpl() 117 for (const Instruction &I : BB) { in runImpl() 191 for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) { in SimplifyFunction() 192 if (InvokeInst *II = dyn_cast<InvokeInst>(BB->getTerminator())) in SimplifyFunction() 195 removeUnwindEdge(&*BB); in SimplifyFunction() 199 DeleteBasicBlock(UnwindBlock, CG); // Delete the new BB in SimplifyFunction() 232 DeleteBasicBlock(BasicBlock *BB, CallGraph &CG) DeleteBasicBlock() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/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, in ComputeValueKnownInPredecessors() argument 138 return ComputeValueKnownInPredecessorsImpl(V, BB, Result, Preference, in ComputeValueKnownInPredecessors() 142 bool ProcessThreadableEdges(Value *Cond, BasicBlock *BB, [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/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) { in getFirstICFI() argument 110 hasICF(const BasicBlock *BB) hasICF() argument 128 getFirstMemoryWrite(const BasicBlock *BB) getFirstMemoryWrite() argument 134 mayWriteToMemory(const BasicBlock *BB) mayWriteToMemory() argument [all...] |