Home
last modified time | relevance | path

Searched refs:DT (Results 1 - 25 of 269) sorted by relevance

1234567891011

/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/
H A DGenericDomTreeConstruction.h176 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 DGenericIteratedDominanceFrontier.h64 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 DMachineDominators.h71 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 DDomTreeUpdater.cpp60 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 DCFG.cpp132 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 DPHITransAddr.cpp145 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 DTypeMetadataUtils.cpp26 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 DLoads.cpp54 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 DSyncDependenceAnalysis.cpp120 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 DSink.cpp38 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 DLICM.cpp139 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 DLoopSimplifyCFG.cpp121 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 DSimpleLoopUnswitch.cpp267 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 DMachineDominators.cpp60 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 DDominators.cpp73 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 DSafepointIRVerifier.cpp71 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 DDominators.h47 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 DCodeMoverUtils.cpp34 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 DLoopUnrollRuntime.cpp71 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 DLCSSA.cpp79 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 DLoopSimplify.cpp123 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 DPredicateInfo.cpp129 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 DLoopUnrollPeel.cpp494 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 DValueTracking.h58 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 DInstructionPrecedenceTracking.h52 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

Completed in 20 milliseconds

1234567891011