/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/ |
H A D | GenericDomTreeConstruction.h | 176 TreeNodePtr getNodeForBlock(NodePtr BB, DomTreeT &DT) { in getNodeForBlock() 177 if (TreeNodePtr Node = DT.getNode(BB)) return Node; in getNodeForBlock() 183 assert(IDom || DT.DomTreeNodes[nullptr]); in getNodeForBlock() 184 TreeNodePtr IDomNode = getNodeForBlock(IDom, DT); in getNodeForBlock() 188 return (DT.DomTreeNodes[BB] = IDomNode->addChild( in getNodeForBlock() 304 void runSemiNCA(DomTreeT &DT, const unsigned MinLevel = 0) { in runSemiNCA() 325 const TreeNodePtr TN = DT.getNode(N); in runSemiNCA() 375 static NodePtr GetEntryNode(const DomTreeT &DT) { in GetEntryNode() 376 assert(DT.Parent && "Parent not set"); in GetEntryNode() 377 return GraphTraits<typename DomTreeT::ParentPtr>::getEntryNode(DT in GetEntryNode() 1599 Calculate(DomTreeT &DT) Calculate() argument 1604 CalculateWithUpdates(DomTreeT &DT, ArrayRef<typename DomTreeT::UpdateType> Updates) CalculateWithUpdates() argument 1623 InsertEdge(DomTreeT &DT, typename DomTreeT::NodePtr From, typename DomTreeT::NodePtr To) InsertEdge() argument 1630 DeleteEdge(DomTreeT &DT, typename DomTreeT::NodePtr From, typename DomTreeT::NodePtr To) DeleteEdge() argument 1637 ApplyUpdates(DomTreeT &DT, ArrayRef<typename DomTreeT::UpdateType> Updates) ApplyUpdates() argument 1643 Verify(const DomTreeT &DT, typename DomTreeT::VerificationLevel VL) Verify() argument [all...] |
H A D | GenericIteratedDominanceFrontier.h | 64 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT) : DT(DT) {} in IDFCalculatorBase() argument 66 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT, in IDFCalculatorBase() argument 68 : DT(DT), ChildrenGetter(C) {} in IDFCalculatorBase() 105 DominatorTreeBase<NodeTy, IsPostDom> &DT; member in llvm::IDFCalculatorBase 145 DT.updateDFSNumbers(); in calculate() 148 if (DomTreeNodeBase<NodeTy> *Node = DT.getNode(BB)) in calculate() 177 DomTreeNodeBase<NodeTy> *SuccNode = DT in calculate() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/ |
H A D | MachineDominators.h | 71 std::unique_ptr<DomTreeT> DT; member in llvm::MachineDominatorTree 73 /// Apply all the recorded critical edges to the DT. 74 /// This updates the underlying DT information in a way that uses 75 /// the fast query path of DT as much as possible. 89 if (!DT) DT.reset(new DomTreeT()); in getBase() 91 return *DT; in getBase() 102 return DT->getRoots(); in getRoots() 107 return DT->getRoot(); in getRoot() 112 return DT in getRootNode() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/ |
H A D | DomTreeUpdater.cpp | 60 if (Strategy != UpdateStrategy::Lazy || !DT) in applyDomTreeUpdates() 68 DT->applyUpdates(ArrayRef<DominatorTree::UpdateType>(I, E)); in applyDomTreeUpdates() 124 if (DT) in recalculate() 125 DT->recalculate(F); in recalculate() 140 if (DT) in recalculate() 141 DT->recalculate(F); in recalculate() 156 if (!DT) in hasPendingDomTreeUpdates() 173 // The DT and PDT require the nodes related to updates 206 if (DT && !IsRecalculatingDomTree) in eraseDelBBNode() 207 if (DT in eraseDelBBNode() [all...] |
H A D | CFG.cpp | 132 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, in isPotentiallyReachableFromMany() 136 if (DT && !DT->isReachableFromEntry(StopBB)) in isPotentiallyReachableFromMany() 137 DT = nullptr; in isPotentiallyReachableFromMany() 142 DT = nullptr; in isPotentiallyReachableFromMany() 169 if (DT && DT->dominates(BB, StopBB)) in isPotentiallyReachableFromMany() 207 const DominatorTree *DT, const LoopInfo *LI) { in isPotentiallyReachable() 215 nullptr, DT, LI); in isPotentiallyReachable() 220 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, in isPotentiallyReachable() 130 isPotentiallyReachableFromMany( SmallVectorImpl<BasicBlock *> &Worklist, BasicBlock *StopBB, const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, const LoopInfo *LI) isPotentiallyReachableFromMany() argument 206 isPotentiallyReachable(const BasicBlock *A, const BasicBlock *B, const DominatorTree *DT, const LoopInfo *LI) isPotentiallyReachable() argument 218 isPotentiallyReachable( const Instruction *A, const Instruction *B, const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, const LoopInfo *LI) isPotentiallyReachable() argument [all...] |
H A D | PHITransAddr.cpp | 145 const DominatorTree *DT) { in PHITranslateSubExpr() 189 Value *PHIIn = PHITranslateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 207 (!DT || DT->dominates(CastI->getParent(), PredBB))) in PHITranslateSubExpr() 218 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr() 230 GEPOps, {DL, TLI, DT, AC})) { in PHITranslateSubExpr() 244 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in PHITranslateSubExpr() 260 Value *LHS = PHITranslateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 279 if (Value *Res = SimplifyAddInst(LHS, RHS, isNSW, isNUW, {DL, TLI, DT, A in PHITranslateSubExpr() 143 PHITranslateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree *DT) PHITranslateSubExpr() argument 312 PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree *DT, bool MustDominate) PHITranslateValue() argument 341 PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree &DT, SmallVectorImpl<Instruction*> &NewInsts) PHITranslateWithInsertion() argument 365 InsertPHITranslatedSubExpr(Value *InVal, BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree &DT, SmallVectorImpl<Instruction*> &NewInsts) InsertPHITranslatedSubExpr() argument [all...] |
H A D | TypeMetadataUtils.cpp | 26 const CallInst *CI, DominatorTree &DT) { in findCallsAtConstantOffset() 35 if (!DT.dominates(CI, User)) in findCallsAtConstantOffset() 39 DT); in findCallsAtConstantOffset() 53 int64_t Offset, const CallInst *CI, DominatorTree &DT) { in findLoadCallsAtConstantOffset() 57 findLoadCallsAtConstantOffset(M, DevirtCalls, User, Offset, CI, DT); in findLoadCallsAtConstantOffset() 59 findCallsAtConstantOffset(DevirtCalls, nullptr, User, Offset, CI, DT); in findLoadCallsAtConstantOffset() 67 CI, DT); in findLoadCallsAtConstantOffset() 76 DominatorTree &DT) { in findDevirtualizableCallsForTypeTest() 94 M, DevirtCalls, CI->getArgOperand(0)->stripPointerCasts(), 0, CI, DT); in findDevirtualizableCallsForTypeTest() 101 const CallInst *CI, DominatorTree &DT) { in findDevirtualizableCallsForTypeCheckedLoad() 24 findCallsAtConstantOffset(SmallVectorImpl<DevirtCallSite> &DevirtCalls, bool *HasNonCallUses, Value *FPtr, uint64_t Offset, const CallInst *CI, DominatorTree &DT) findCallsAtConstantOffset() argument 51 findLoadCallsAtConstantOffset( const Module *M, SmallVectorImpl<DevirtCallSite> &DevirtCalls, Value *VPtr, int64_t Offset, const CallInst *CI, DominatorTree &DT) findLoadCallsAtConstantOffset() argument 73 findDevirtualizableCallsForTypeTest( SmallVectorImpl<DevirtCallSite> &DevirtCalls, SmallVectorImpl<CallInst *> &Assumes, const CallInst *CI, DominatorTree &DT) findDevirtualizableCallsForTypeTest() argument 97 findDevirtualizableCallsForTypeCheckedLoad( SmallVectorImpl<DevirtCallSite> &DevirtCalls, SmallVectorImpl<Instruction *> &LoadedPtrs, SmallVectorImpl<Instruction *> &Preds, bool &HasNonCallUses, const CallInst *CI, DominatorTree &DT) findDevirtualizableCallsForTypeCheckedLoad() argument [all...] |
H A D | Loads.cpp | 54 const Instruction *CtxI, const DominatorTree *DT, in isDereferenceableAndAlignedPointer() 66 Size, DL, CtxI, DT, Visited); in isDereferenceableAndAlignedPointer() 72 if (!CheckForNonNull || isKnownNonZero(V, DL, 0, nullptr, CtxI, DT)) { in isDereferenceableAndAlignedPointer() 102 CtxI, DT, Visited); in isDereferenceableAndAlignedPointer() 108 RelocateInst->getDerivedPtr(), Alignment, Size, DL, CtxI, DT, Visited); in isDereferenceableAndAlignedPointer() 112 Size, DL, CtxI, DT, Visited); in isDereferenceableAndAlignedPointer() 117 DT, Visited); in isDereferenceableAndAlignedPointer() 127 const DominatorTree *DT) { in isDereferenceableAndAlignedPointer() 134 return ::isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, DT, in isDereferenceableAndAlignedPointer() 142 const DominatorTree *DT) { in isDereferenceableAndAlignedPointer() 52 isDereferenceableAndAlignedPointer( const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, const Instruction *CtxI, const DominatorTree *DT, SmallPtrSetImpl<const Value *> &Visited) isDereferenceableAndAlignedPointer() argument 123 isDereferenceableAndAlignedPointer(const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, const Instruction *CtxI, const DominatorTree *DT) isDereferenceableAndAlignedPointer() argument 138 isDereferenceableAndAlignedPointer(const Value *V, Type *Ty, MaybeAlign MA, const DataLayout &DL, const Instruction *CtxI, const DominatorTree *DT) isDereferenceableAndAlignedPointer() argument 159 isDereferenceablePointer(const Value *V, Type *Ty, const DataLayout &DL, const Instruction *CtxI, const DominatorTree *DT) isDereferenceablePointer() argument 197 isDereferenceableAndAlignedInLoop(LoadInst *LI, Loop *L, ScalarEvolution &SE, DominatorTree &DT) isDereferenceableAndAlignedInLoop() argument 262 isSafeToLoadUnconditionally(Value *V, MaybeAlign MA, APInt &Size, const DataLayout &DL, Instruction *ScanFrom, const DominatorTree *DT) isSafeToLoadUnconditionally() argument 341 isSafeToLoadUnconditionally(Value *V, Type *Ty, MaybeAlign Alignment, const DataLayout &DL, Instruction *ScanFrom, const DominatorTree *DT) isSafeToLoadUnconditionally() argument [all...] |
H A D | SyncDependenceAnalysis.cpp | 120 SyncDependenceAnalysis::SyncDependenceAnalysis(const DominatorTree &DT, in SyncDependenceAnalysis() argument 123 : FuncRPOT(DT.getRoot()->getParent()), DT(DT), PDT(PDT), LI(LI) {} in SyncDependenceAnalysis() 132 const DominatorTree &DT; member 152 DivergencePropagator(const FunctionRPOT &FuncRPOT, const DominatorTree &DT, in DivergencePropagator() 154 : FuncRPOT(FuncRPOT), DT(DT), PDT(PDT), LI(LI), in DivergencePropagator() 348 DivergencePropagator Propagator{FuncRPOT, DT, PDT, LI}; in join_blocks() 370 DivergencePropagator Propagator{FuncRPOT, DT, PD in join_blocks() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/ |
H A D | Sink.cpp | 38 DominatorTree &DT) { in AllUsesDominatedByBlock() 54 if (!DT.dominates(BB, UseBlock)) in AllUsesDominatedByBlock() 96 DominatorTree &DT, LoopInfo &LI) { in IsAcceptableTarget() 122 if (!DT.dominates(Inst->getParent(), SuccToSinkTo)) in IsAcceptableTarget() 134 return AllUsesDominatedByBlock(Inst, SuccToSinkTo, DT); in IsAcceptableTarget() 141 DominatorTree &DT, LoopInfo &LI, AAResults &AA) { in SinkInstruction() 168 DomTreeNode *DTN = DT.getNode(Inst->getParent()); in SinkInstruction() 174 if (IsAcceptableTarget(Inst, Candidate, DT, LI)) in SinkInstruction() 182 if (IsAcceptableTarget(Inst, *I, DT, LI)) in SinkInstruction() 199 static bool ProcessBlock(BasicBlock &BB, DominatorTree &DT, LoopInf argument 37 AllUsesDominatedByBlock(Instruction *Inst, BasicBlock *BB, DominatorTree &DT) AllUsesDominatedByBlock() argument 95 IsAcceptableTarget(Instruction *Inst, BasicBlock *SuccToSinkTo, DominatorTree &DT, LoopInfo &LI) IsAcceptableTarget() argument 139 SinkInstruction(Instruction *Inst, SmallPtrSetImpl<Instruction *> &Stores, DominatorTree &DT, LoopInfo &LI, AAResults &AA) SinkInstruction() argument 239 iterativelySinkInstructions(Function &F, DominatorTree &DT, LoopInfo &LI, AAResults &AA) iterativelySinkInstructions() argument 257 auto &DT = AM.getResult<DominatorTreeAnalysis>(F); run() local 278 auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); global() variable [all...] |
H A D | LICM.cpp | 139 static void hoist(Instruction &I, const DominatorTree *DT, const Loop *CurLoop, 143 static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT, 147 const DominatorTree *DT, 172 bool runOnLoop(Loop *L, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT, 292 if (!LICM.runOnLoop(&L, &AR.AA, &AR.LI, &AR.DT, &AR.TLI, &AR.TTI, &AR.SE, in run() 329 Loop *L, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT, in runOnLoop() 334 assert(L->isLCSSAForm(*DT) && "Loop is not in LCSSA form."); in runOnLoop() 375 ICFLoopSafetyInfo SafetyInfo(DT); in runOnLoop() 391 Changed |= sinkRegion(DT->getNode(L->getHeader()), AA, LI, DT, TL in runOnLoop() 328 runOnLoop( Loop *L, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT, TargetLibraryInfo *TLI, TargetTransformInfo *TTI, ScalarEvolution *SE, MemorySSA *MSSA, OptimizationRemarkEmitter *ORE, bool DeleteAST) runOnLoop() argument 497 sinkRegion(DomTreeNode *N, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT, TargetLibraryInfo *TLI, TargetTransformInfo *TTI, Loop *CurLoop, AliasSetTracker *CurAST, MemorySSAUpdater *MSSAU, ICFLoopSafetyInfo *SafetyInfo, SinkAndHoistLICMFlags &Flags, OptimizationRemarkEmitter *ORE) sinkRegion() argument 576 DominatorTree *DT; global() member in __anon25127::ControlFlowHoister 589 ControlFlowHoister(LoopInfo *LI, DominatorTree *DT, Loop *CurLoop, MemorySSAUpdater *MSSAU) ControlFlowHoister() argument 798 hoistRegion(DomTreeNode *N, AliasAnalysis *AA, LoopInfo *LI, DominatorTree *DT, TargetLibraryInfo *TLI, Loop *CurLoop, AliasSetTracker *CurAST, MemorySSAUpdater *MSSAU, ScalarEvolution *SE, ICFLoopSafetyInfo *SafetyInfo, SinkAndHoistLICMFlags &Flags, OptimizationRemarkEmitter *ORE) hoistRegion() argument 984 isLoadInvariantInLoop(LoadInst *LI, DominatorTree *DT, Loop *CurLoop) isLoadInvariantInLoop() argument 1083 canSinkOrHoistInst(Instruction &I, AAResults *AA, DominatorTree *DT, Loop *CurLoop, AliasSetTracker *CurAST, MemorySSAUpdater *MSSAU, bool TargetExecutesOncePerLoop, SinkAndHoistLICMFlags *Flags, OptimizationRemarkEmitter *ORE) canSinkOrHoistInst() argument 1502 splitPredecessorsOfLoopExit(PHINode *PN, DominatorTree *DT, LoopInfo *LI, const Loop *CurLoop, LoopSafetyInfo *SafetyInfo, MemorySSAUpdater *MSSAU) splitPredecessorsOfLoopExit() argument 1574 sink(Instruction &I, LoopInfo *LI, DominatorTree *DT, const Loop *CurLoop, ICFLoopSafetyInfo *SafetyInfo, MemorySSAUpdater *MSSAU, OptimizationRemarkEmitter *ORE) sink() argument 1675 hoist(Instruction &I, const DominatorTree *DT, const Loop *CurLoop, BasicBlock *Dest, ICFLoopSafetyInfo *SafetyInfo, MemorySSAUpdater *MSSAU, ScalarEvolution *SE, OptimizationRemarkEmitter *ORE) hoist() argument 1719 isSafeToExecuteUnconditionally(Instruction &Inst, const DominatorTree *DT, const Loop *CurLoop, const LoopSafetyInfo *SafetyInfo, OptimizationRemarkEmitter *ORE, const Instruction *CtxI) isSafeToExecuteUnconditionally() argument 1880 promoteLoopAccessesToScalars( const SmallSetVector<Value *, 8> &PointerMustAliases, SmallVectorImpl<BasicBlock *> &ExitBlocks, SmallVectorImpl<Instruction *> &InsertPts, SmallVectorImpl<MemoryAccess *> &MSSAInsertPts, PredIteratorCache &PIC, LoopInfo *LI, DominatorTree *DT, const TargetLibraryInfo *TLI, Loop *CurLoop, AliasSetTracker *CurAST, MemorySSAUpdater *MSSAU, ICFLoopSafetyInfo *SafetyInfo, OptimizationRemarkEmitter *ORE) promoteLoopAccessesToScalars() argument [all...] |
H A D | LoopSimplifyCFG.cpp | 121 DominatorTree &DT; member in __anon25146::ConstantTerminatorFoldingImpl 358 Preheader, Preheader->getTerminator(), &DT, &LI, MSSAU); in handleDeadExits() 410 // We need all DT updates to be done before forming LCSSA. in handleDeadExits() 413 MSSAU->applyUpdates(DTUpdates, DT); in handleDeadExits() 415 formLCSSARecursively(*FixLCSSALoop, DT, &LI, &SE); in handleDeadExits() 422 MSSAU->applyUpdates(DTUpdates, DT); in handleDeadExits() 430 /// relevant updates to DT and LI. 526 ConstantTerminatorFoldingImpl(Loop &L, LoopInfo &LI, DominatorTree &DT, in ConstantTerminatorFoldingImpl() argument 529 : L(L), LI(LI), DT(DT), S in ConstantTerminatorFoldingImpl() 625 constantFoldTerminators(Loop &L, DominatorTree &DT, LoopInfo &LI, ScalarEvolution &SE, MemorySSAUpdater *MSSAU, bool &IsLoopDeleted) constantFoldTerminators() argument 643 mergeBlocksIntoPredecessors(Loop &L, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) mergeBlocksIntoPredecessors() argument 674 simplifyLoopCFG(Loop &L, DominatorTree &DT, LoopInfo &LI, ScalarEvolution &SE, MemorySSAUpdater *MSSAU, bool &isLoopDeleted) simplifyLoopCFG() argument [all...] |
H A D | SimpleLoopUnswitch.cpp | 267 DominatorTree &DT, LoopInfo &LI, in hoistLoopToNewParent() 322 formLCSSA(*OldContainingL, DT, &LI, SE); in hoistLoopToNewParent() 329 formDedicatedExitBlocks(OldContainingL, &DT, &LI, MSSAU, in hoistLoopToNewParent() 365 static bool unswitchTrivialBranch(Loop &L, BranchInst &BI, DominatorTree &DT, in unswitchTrivialBranch() argument 449 BasicBlock *NewPH = SplitEdge(OldPH, L.getHeader(), &DT, &LI, MSSAU); in unswitchTrivialBranch() 462 SplitBlock(LoopExitBB, &LoopExitBB->front(), &DT, &LI, MSSAU); in unswitchTrivialBranch() 505 DT.insertEdge(OldPH, UnswitchedBB); in unswitchTrivialBranch() 512 MSSAU->applyInsertUpdates(Updates, DT); in unswitchTrivialBranch() 524 DT.deleteEdge(ParentBB, LoopExitBB); in unswitchTrivialBranch() 552 hoistLoopToNewParent(L, *NewPH, DT, L in unswitchTrivialBranch() 266 hoistLoopToNewParent(Loop &L, BasicBlock &Preheader, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU, ScalarEvolution *SE) hoistLoopToNewParent() argument 589 unswitchTrivialSwitch(Loop &L, SwitchInst &SI, DominatorTree &DT, LoopInfo &LI, ScalarEvolution *SE, MemorySSAUpdater *MSSAU) unswitchTrivialSwitch() argument 868 unswitchAllTrivialConditions(Loop &L, DominatorTree &DT, LoopInfo &LI, ScalarEvolution *SE, MemorySSAUpdater *MSSAU) unswitchAllTrivialConditions() argument 986 buildClonedLoopBlocks( Loop &L, BasicBlock *LoopPH, BasicBlock *SplitBB, ArrayRef<BasicBlock *> ExitBlocks, BasicBlock *ParentBB, BasicBlock *UnswitchedSuccBB, BasicBlock *ContinueSuccBB, const SmallDenseMap<BasicBlock *, BasicBlock *, 16> &DominatingSucc, ValueToValueMapTy &VMap, SmallVectorImpl<DominatorTree::UpdateType> &DTUpdates, AssumptionCache &AC, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) buildClonedLoopBlocks() argument 1467 deleteDeadClonedBlocks(Loop &L, ArrayRef<BasicBlock *> ExitBlocks, ArrayRef<std::unique_ptr<ValueToValueMapTy>> VMaps, DominatorTree &DT, MemorySSAUpdater *MSSAU) deleteDeadClonedBlocks() argument 1496 deleteDeadBlocksFromLoop(Loop &L, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) deleteDeadBlocksFromLoop() argument 1895 visitDomSubTree(DominatorTree &DT, BasicBlock *BB, CallableT Callable) visitDomSubTree() argument 1918 unswitchNontrivialInvariants( Loop &L, Instruction &TI, ArrayRef<Value *> Invariants, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, AssumptionCache &AC, function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB, ScalarEvolution *SE, MemorySSAUpdater *MSSAU) unswitchNontrivialInvariants() argument 2392 turnGuardIntoBranch(IntrinsicInst *GI, Loop &L, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) turnGuardIntoBranch() argument 2468 calculateUnswitchCostMultiplier( Instruction &TI, Loop &L, LoopInfo &LI, DominatorTree &DT, ArrayRef<std::pair<Instruction *, TinyPtrVector<Value *>>> UnswitchCandidates) calculateUnswitchCostMultiplier() argument 2541 unswitchBestCondition(Loop &L, DominatorTree &DT, LoopInfo &LI, AssumptionCache &AC, TargetTransformInfo &TTI, function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB, ScalarEvolution *SE, MemorySSAUpdater *MSSAU) unswitchBestCondition() argument 2818 unswitchLoop(Loop &L, DominatorTree &DT, LoopInfo &LI, AssumptionCache &AC, TargetTransformInfo &TTI, bool NonTrivial, function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB, ScalarEvolution *SE, MemorySSAUpdater *MSSAU) unswitchLoop() argument 2948 auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); runOnLoop() local [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/ |
H A D | MachineDominators.cpp | 60 DT.reset(new DomTreeBase<MachineBasicBlock>()); in calculate() 61 DT->recalculate(F); in calculate() 71 DT.reset(nullptr); in releaseMemory() 75 if (DT && VerifyMachineDomInfo) in verifyAnalysis() 76 if (!DT->verify(DomTreeT::VerificationLevel::Basic)) { in verifyAnalysis() 83 if (DT) in print() 84 DT->print(OS); in print() 100 // the underlying DT. in applySplitCriticalEdges() 104 MachineDomTreeNode *SuccDTNode = DT->getNode(Succ); in applySplitCriticalEdges() 120 // FromBB2 since Split2 is still unknown of the underlying DT structur in applySplitCriticalEdges() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/IR/ |
H A D | Dominators.cpp | 73 DomTreeBuilder::BBDomTree &DT); 76 DomTreeBuilder::BBDomTree &DT, BBUpdates U); 79 DomTreeBuilder::BBPostDomTree &DT); 83 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To); 85 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To); 88 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To); 90 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To); 93 DomTreeBuilder::BBDomTree &DT, DomTreeBuilder::BBUpdates); 95 DomTreeBuilder::BBPostDomTree &DT, DomTreeBuilder::BBUpdates); 98 const DomTreeBuilder::BBDomTree &DT, 326 DominatorTree DT; run() local 345 auto &DT = AM.getResult<DominatorTreeAnalysis>(F); run() local [all...] |
H A D | SafepointIRVerifier.cpp | 71 const DominatorTree *DT = nullptr; member in __anon24221::CFGDeadness 126 void processFunction(const Function &F, const DominatorTree &DT) { in processFunction() argument 127 this->DT = &DT; in processFunction() 131 if (!DT.isReachableFromEntry(&BB)) in processFunction() 171 DT->getDescendants(const_cast<BasicBlock*>(D), Dom); in addDeadBlock() 198 static void Verify(const Function &F, const DominatorTree &DT, 204 const auto &DT = AM.getResult<DominatorTreeAnalysis>(F); in run() local 206 CD.processFunction(F, DT); in run() 207 Verify(F, DT, C in run() 221 auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); global() variable 537 GCPtrTracker(const Function &F, const DominatorTree &DT, const CFGDeadness &CD) GCPtrTracker() argument 734 gatherDominatingDefs(const BasicBlock *BB, AvailableValueSet &Result, const DominatorTree &DT) gatherDominatingDefs() argument 884 Verify(const Function &F, const DominatorTree &DT, const CFGDeadness &CD) Verify() argument [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/ |
H A D | Dominators.h | 47 extern template void Calculate<BBDomTree>(BBDomTree &DT); 48 extern template void CalculateWithUpdates<BBDomTree>(BBDomTree &DT, 51 extern template void Calculate<BBPostDomTree>(BBPostDomTree &DT); 53 extern template void InsertEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, 55 extern template void InsertEdge<BBPostDomTree>(BBPostDomTree &DT, 59 extern template void DeleteEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, 61 extern template void DeleteEdge<BBPostDomTree>(BBPostDomTree &DT, 65 extern template void ApplyUpdates<BBDomTree>(BBDomTree &DT, BBUpdates); 66 extern template void ApplyUpdates<BBPostDomTree>(BBPostDomTree &DT, BBUpdates); 68 extern template bool Verify<BBDomTree>(const BBDomTree &DT, 150 DominatorTree(DominatorTree &DT, DomTreeBuilder::BBUpdates U) DominatorTree() argument 260 DominatorTree DT; global() member in llvm::DominatorTreeWrapperPass [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Utils/ |
H A D | CodeMoverUtils.cpp | 34 const DominatorTree &DT, in isControlFlowEquivalent() 36 return isControlFlowEquivalent(*I0.getParent(), *I1.getParent(), DT, PDT); in isControlFlowEquivalent() 40 const DominatorTree &DT, in isControlFlowEquivalent() 45 return ((DT.dominates(&BB0, &BB1) && PDT.dominates(&BB1, &BB0)) || in isControlFlowEquivalent() 46 (PDT.dominates(&BB0, &BB1) && DT.dominates(&BB1, &BB0))); in isControlFlowEquivalent() 93 const DominatorTree &DT, in isSafeToMoveBefore() 111 if (!isControlFlowEquivalent(I, InsertPoint, DT, PDT)) in isSafeToMoveBefore() 116 const bool MoveForward = DT.dominates(&I, &InsertPoint); in isSafeToMoveBefore() 122 if (UserInst != &InsertPoint && !DT.dominates(&InsertPoint, U)) in isSafeToMoveBefore() 129 if (&InsertPoint == OpInst || !DT in isSafeToMoveBefore() 33 isControlFlowEquivalent(const Instruction &I0, const Instruction &I1, const DominatorTree &DT, const PostDominatorTree &PDT) isControlFlowEquivalent() argument 39 isControlFlowEquivalent(const BasicBlock &BB0, const BasicBlock &BB1, const DominatorTree &DT, const PostDominatorTree &PDT) isControlFlowEquivalent() argument 92 isSafeToMoveBefore(Instruction &I, Instruction &InsertPoint, const DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI) isSafeToMoveBefore() argument 177 moveInstsBottomUp(BasicBlock &FromBB, BasicBlock &ToBB, const DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI) moveInstsBottomUp() argument [all...] |
H A D | LoopUnrollRuntime.cpp | 71 ValueToValueMapTy &VMap, DominatorTree *DT, in ConnectProlog() 143 SplitBlockPredecessors(PrologExit, PrologExitPreds, ".unr-lcssa", DT, LI, in ConnectProlog() 162 SplitBlockPredecessors(OriginalLoopLatchExit, Preds, ".unr-lcssa", DT, LI, in ConnectProlog() 167 if (DT) in ConnectProlog() 168 DT->changeImmediateDominator(OriginalLoopLatchExit, PrologExit); in ConnectProlog() 186 ValueToValueMapTy &VMap, DominatorTree *DT, in ConnectEpilog() 277 SplitBlockPredecessors(Exit, Preds, ".epilog-lcssa", DT, LI, nullptr, in ConnectEpilog() 282 if (DT) in ConnectEpilog() 283 DT->changeImmediateDominator(Exit, NewExit); in ConnectEpilog() 287 SplitBlockPredecessors(NewExit, NewExitPreds, ".loopexit", DT, L in ConnectEpilog() 67 ConnectProlog(Loop *L, Value *BECount, unsigned Count, BasicBlock *PrologExit, BasicBlock *OriginalLoopLatchExit, BasicBlock *PreHeader, BasicBlock *NewPreHeader, ValueToValueMapTy &VMap, DominatorTree *DT, LoopInfo *LI, bool PreserveLCSSA) ConnectProlog() argument 183 ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit, BasicBlock *Exit, BasicBlock *PreHeader, BasicBlock *EpilogPreHeader, BasicBlock *NewPreHeader, ValueToValueMapTy &VMap, DominatorTree *DT, LoopInfo *LI, bool PreserveLCSSA) ConnectEpilog() argument 300 CloneLoopBlocks(Loop *L, Value *NewIter, const bool CreateRemainderLoop, const bool UseEpilogRemainder, const bool UnrollRemainder, BasicBlock *InsertTop, BasicBlock *InsertBot, BasicBlock *Preheader, std::vector<BasicBlock *> &NewBlocks, LoopBlocksDFS &LoopBlocks, ValueToValueMapTy &VMap, DominatorTree *DT, LoopInfo *LI) CloneLoopBlocks() argument 546 UnrollRuntimeLoopRemainder(Loop *L, unsigned Count, bool AllowExpensiveTripCount, bool UseEpilogRemainder, bool UnrollRemainder, bool ForgetAllSCEV, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, bool PreserveLCSSA, Loop **ResultLoop) UnrollRuntimeLoopRemainder() argument [all...] |
H A D | LCSSA.cpp | 79 DominatorTree &DT, LoopInfo &LI, in formLCSSAForInstructions() 131 DomTreeNode *DomNode = DT.getNode(DomBB); in formLCSSAForInstructions() 148 if (!DT.dominates(DomNode, DT.getNode(ExitBB))) in formLCSSAForInstructions() 277 Loop &L, DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks, in computeBlocksDominatingExits() 295 BasicBlock *IDomBB = DT.getNode(BB)->getIDom()->getBlock(); in computeBlocksDominatingExits() 321 bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, in formLCSSA() argument 328 assert(SubLoop->isRecursivelyLCSSAForm(DT, *LI) && "Subloop not in LCSSA!"); in formLCSSA() 343 computeBlocksDominatingExits(L, DT, ExitBlocks, BlocksDominatingExits); in formLCSSA() 372 Changed = formLCSSAForInstructions(Worklist, DT, *L in formLCSSA() 78 formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist, DominatorTree &DT, LoopInfo &LI, ScalarEvolution *SE) formLCSSAForInstructions() argument 276 computeBlocksDominatingExits( Loop &L, DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks, SmallSetVector<BasicBlock *, 8> &BlocksDominatingExits) computeBlocksDominatingExits() argument 386 formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE) formLCSSARecursively() argument 399 formLCSSAOnAllLoops(LoopInfo *LI, DominatorTree &DT, ScalarEvolution *SE) formLCSSAOnAllLoops() argument 415 DominatorTree *DT; global() member 482 auto &DT = AM.getResult<DominatorTreeAnalysis>(F); run() local [all...] |
H A D | LoopSimplify.cpp | 123 BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, DominatorTree *DT, in InsertPreheaderForLoop() argument 147 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", DT, in InsertPreheaderForLoop() 183 static PHINode *findPHIToPartitionLoops(Loop *L, DominatorTree *DT, in findPHIToPartitionLoops() argument 189 if (Value *V = SimplifyInstruction(PN, {DL, nullptr, DT, AC})) { in findPHIToPartitionLoops() 226 DominatorTree *DT, LoopInfo *LI, in separateNestedLoop() 237 PHINode *PN = findPHIToPartitionLoops(L, DT, AC); in separateNestedLoop() 262 DT, LI, MSSAU, PreserveLCSSA); in separateNestedLoop() 293 if (DT->dominates(Header, P)) in separateNestedLoop() 325 formDedicatedExitBlocks(L, DT, LI, MSSAU, PreserveLCSSA); in separateNestedLoop() 334 formLCSSA(*L, *DT, L in separateNestedLoop() 225 separateNestedLoop(Loop *L, BasicBlock *Preheader, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, bool PreserveLCSSA, AssumptionCache *AC, MemorySSAUpdater *MSSAU) separateNestedLoop() argument 349 insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU) insertUniqueBackedgeBlock() argument 472 simplifyOneLoop(Loop *L, SmallVectorImpl<Loop *> &Worklist, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) simplifyOneLoop() argument 710 simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) simplifyLoop() argument 801 DominatorTree *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); runOnFunction() local 836 DominatorTree *DT = &AM.getResult<DominatorTreeAnalysis>(F); run() local [all...] |
H A D | PredicateInfo.cpp | 129 DominatorTree &DT; member 131 ValueDFS_Compare(DominatorTree &DT, OrderedInstructions &OI) in ValueDFS_Compare() 132 : DT(DT), OI(OI) {} in ValueDFS_Compare() 180 DomTreeNode *DomASrc = DT.getNode(ASrc); in comparePHIRelated() 181 DomTreeNode *DomBSrc = DT.getNode(BSrc); in comparePHIRelated() 193 DomTreeNode *DomADest = DT.getNode(ADest); in comparePHIRelated() 194 DomTreeNode *DomBDest = DT.getNode(BDest); in comparePHIRelated() 277 return DT.dominates(getBlockEdge(Stack.back().PInfo), *VDUse.U); in stackIsInScope() 310 DomTreeNode *DomNode = DT in convertUsesToDFSOrdered() 800 auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); runOnFunction() local 813 auto &DT = AM.getResult<DominatorTreeAnalysis>(F); run() local 873 auto &DT = AM.getResult<DominatorTreeAnalysis>(F); run() local [all...] |
H A D | LoopUnrollPeel.cpp | 494 ValueToValueMapTy &VMap, ValueToValueMapTy &LVMap, DominatorTree *DT, 517 if (DT) { 519 DT->addNewBlock(NewBB, InsertTop); 521 DomTreeNode *IDom = DT->getNode(*BB)->getIDom(); 523 DT->addNewBlock(NewBB, cast<BasicBlock>(VMap[IDom->getBlock()])); 546 if (DT) 547 DT->changeImmediateDominator(InsertBot, NewLatch); 601 ScalarEvolution *SE, DominatorTree *DT, 616 if (DT) { 639 BasicBlock *BB = DT [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Analysis/ |
H A D | ValueTracking.h | 58 const DominatorTree *DT = nullptr, 66 const DominatorTree *DT = nullptr, 81 const DominatorTree *DT = nullptr, 93 const DominatorTree *DT = nullptr, 107 const DominatorTree *DT = nullptr, 121 const DominatorTree *DT = nullptr, 129 const DominatorTree *DT = nullptr, 137 const DominatorTree *DT = nullptr, 145 const DominatorTree *DT = nullptr, 161 const DominatorTree *DT [all...] |
H A D | InstructionPrecedenceTracking.h | 52 InstructionPrecedenceTracking(DominatorTree *DT) in InstructionPrecedenceTracking() argument 53 : OI(OrderedInstructions(DT)) {} in InstructionPrecedenceTracking() 99 ImplicitControlFlowTracking(DominatorTree *DT) in ImplicitControlFlowTracking() argument 100 : InstructionPrecedenceTracking(DT) {} in ImplicitControlFlowTracking() 124 MemoryWriteTracking(DominatorTree *DT) : InstructionPrecedenceTracking(DT) {} in MemoryWriteTracking() argument
|