/external/swiftshader/third_party/LLVM/include/llvm/Analysis/ |
D | ScalarEvolution.h | 49 class SCEV; variable 50 template<> struct FoldingSetTrait<SCEV>; 56 class SCEV : public FoldingSetNode { 57 friend struct FoldingSetTrait<SCEV>; 72 SCEV(const SCEV &); // DO NOT IMPLEMENT 73 void operator=(const SCEV &); // DO NOT IMPLEMENT 99 explicit SCEV(const FoldingSetNodeIDRef ID, unsigned SCEVTy) : 133 template<> struct FoldingSetTrait<SCEV> : DefaultFoldingSetTrait<SCEV> { 134 static void Profile(const SCEV &X, FoldingSetNodeID& ID) { 137 static bool Equals(const SCEV &X, const FoldingSetNodeID &ID, [all …]
|
D | ScalarEvolutionExpressions.h | 36 class SCEVConstant : public SCEV { 41 SCEV(ID, scConstant), V(v) {} in SCEVConstant() 49 static inline bool classof(const SCEV *S) { in classof() 57 class SCEVCastExpr : public SCEV { 59 const SCEV *Op; 63 unsigned SCEVTy, const SCEV *op, Type *ty); 66 const SCEV *getOperand() const { return Op; } in getOperand() 71 static inline bool classof(const SCEV *S) { in classof() 86 const SCEV *op, Type *ty); 91 static inline bool classof(const SCEV *S) { in classof() [all …]
|
D | LoopDependenceAnalysis.h | 34 class SCEV; variable 72 void getLoops(const SCEV*, DenseSet<const Loop*>*) const; 76 bool isLoopInvariant(const SCEV*) const; 81 bool isAffine(const SCEV*) const; 84 bool isZIVPair(const SCEV*, const SCEV*) const; 85 bool isSIVPair(const SCEV*, const SCEV*) const; 86 DependenceResult analyseZIV(const SCEV*, const SCEV*, Subscript*) const; 87 DependenceResult analyseSIV(const SCEV*, const SCEV*, Subscript*) const; 88 DependenceResult analyseMIV(const SCEV*, const SCEV*, Subscript*) const; 89 DependenceResult analyseSubscript(const SCEV*, const SCEV*, Subscript*) const;
|
D | ScalarEvolutionExpander.h | 37 std::map<std::pair<const SCEV *, Instruction *>, AssertingVH<Value> > 43 DenseMap<const SCEV *, const Loop *> RelevantLoops; 123 Value *expandCodeFor(const SCEV *SH, Type *Ty, Instruction *I); 186 Value *expandAddToGEP(const SCEV *const *op_begin, 187 const SCEV *const *op_end, 190 Value *expand(const SCEV *S); 196 Value *expandCodeFor(const SCEV *SH, Type *Ty = 0); 206 const Loop *getRelevantLoop(const SCEV *);
|
/external/llvm/include/llvm/Analysis/ |
D | ScalarEvolution.h | 50 class SCEV; variable 58 template <> struct FoldingSetTrait<SCEV>; 64 class SCEV : public FoldingSetNode { 65 friend struct FoldingSetTrait<SCEV>; 80 SCEV(const SCEV &) = delete; 81 void operator=(const SCEV &) = delete; 108 explicit SCEV(const FoldingSetNodeIDRef ID, unsigned SCEVTy) : 143 template<> struct FoldingSetTrait<SCEV> : DefaultFoldingSetTrait<SCEV> { 144 static void Profile(const SCEV &X, FoldingSetNodeID& ID) { 147 static bool Equals(const SCEV &X, const FoldingSetNodeID &ID, [all …]
|
D | DependenceAnalysis.h | 53 class SCEV; variable 107 const SCEV *Distance; // NULL implies no distance available. 167 virtual const SCEV *getDistance(unsigned Level) const { return nullptr; } in getDistance() 253 const SCEV *getDistance(unsigned Level) const override; 338 const SCEV *getSplitIteration(const Dependence &Dep, unsigned Level); 352 const SCEV *Src; 353 const SCEV *Dst; 361 const SCEV *Coeff; 362 const SCEV *PosPart; 363 const SCEV *NegPart; [all …]
|
D | ScalarEvolutionExpressions.h | 36 class SCEVConstant : public SCEV { 41 SCEV(ID, scConstant), V(v) {} in SCEVConstant() 49 static inline bool classof(const SCEV *S) { in classof() 55 class SCEVCastExpr : public SCEV { 57 const SCEV *Op; 61 unsigned SCEVTy, const SCEV *op, Type *ty); 64 const SCEV *getOperand() const { return Op; } in getOperand() 68 static inline bool classof(const SCEV *S) { in classof() 81 const SCEV *op, Type *ty); 85 static inline bool classof(const SCEV *S) { in classof() [all …]
|
D | ScalarEvolutionExpander.h | 29 bool isSafeToExpand(const SCEV *S, ScalarEvolution &SE); 45 std::map<std::pair<const SCEV *, Instruction *>, TrackingVH<Value> > 52 DenseMap<const SCEV *, const Loop *> RelevantLoops; 169 bool isHighCostExpansion(const SCEV *Expr, Loop *L, 171 SmallPtrSet<const SCEV *, 8> Processed; 197 Value *expandCodeFor(const SCEV *SH, Type *Ty, Instruction *I); 279 Value *findExistingExpansion(const SCEV *S, const Instruction *At, Loop *L); 285 bool isHighCostExpansionHelper(const SCEV *S, Loop *L, 287 SmallPtrSetImpl<const SCEV *> &Processed); 307 Value *expandAddToGEP(const SCEV *const *op_begin, [all …]
|
/external/llvm/lib/Analysis/ |
D | ScalarEvolution.cpp | 132 void SCEV::dump() const { in dump() 137 void SCEV::print(raw_ostream &OS) const { in print() 144 const SCEV *Op = Trunc->getOperand(); in print() 151 const SCEV *Op = ZExt->getOperand(); in print() 158 const SCEV *Op = SExt->getOperand(); in print() 247 Type *SCEV::getType() const { in getType() 272 bool SCEV::isZero() const { in isZero() 278 bool SCEV::isOne() const { in isOne() 284 bool SCEV::isAllOnesValue() const { in isAllOnesValue() 290 bool SCEV::isNonConstantNegative() const { in isNonConstantNegative() [all …]
|
D | ScalarEvolutionNormalization.cpp | 73 DenseMap<const SCEV*, const SCEV*> Transformed; 80 const SCEV *TransformSubExpr(const SCEV *S, Instruction *User, 84 const SCEV *TransformImpl(const SCEV *S, Instruction *User, 91 const SCEV *PostIncTransform:: 92 TransformImpl(const SCEV *S, Instruction *User, Value *OperandValToReplace) { in TransformImpl() 95 const SCEV *O = X->getOperand(); in TransformImpl() 96 const SCEV *N = TransformSubExpr(O, User, OperandValToReplace); in TransformImpl() 109 SmallVector<const SCEV *, 8> Operands; in TransformImpl() 119 const SCEV *Result = SE.getAddRecExpr(Operands, L, SCEV::FlagAnyWrap); in TransformImpl() 134 const SCEV *TransformedStep = in TransformImpl() [all …]
|
D | DependenceAnalysis.cpp | 256 const SCEV *FullDependence::getDistance(unsigned Level) const { in getDistance() 299 const SCEV *DependenceInfo::Constraint::getX() const { in getX() 307 const SCEV *DependenceInfo::Constraint::getY() const { in getY() 315 const SCEV *DependenceInfo::Constraint::getA() const { in getA() 324 const SCEV *DependenceInfo::Constraint::getB() const { in getB() 333 const SCEV *DependenceInfo::Constraint::getC() const { in getC() 342 const SCEV *DependenceInfo::Constraint::getD() const { in getD() 355 void DependenceInfo::Constraint::setPoint(const SCEV *X, const SCEV *Y, in setPoint() 363 void DependenceInfo::Constraint::setLine(const SCEV *AA, const SCEV *BB, in setLine() 364 const SCEV *CC, const Loop *CurLoop) { in setLine() [all …]
|
D | ScalarEvolutionExpander.cpp | 226 static bool FactorOutConstant(const SCEV *&S, const SCEV *&Remainder, in FactorOutConstant() 227 const SCEV *Factor, ScalarEvolution &SE, in FactorOutConstant() 252 const SCEV *Div = SE.getConstant(CI); in FactorOutConstant() 269 SmallVector<const SCEV *, 4> NewMulOps(M->op_begin(), M->op_end()); in FactorOutConstant() 278 const SCEV *Step = A->getStepRecurrence(SE); in FactorOutConstant() 279 const SCEV *StepRem = SE.getConstant(Step->getType(), 0); in FactorOutConstant() 284 const SCEV *Start = A->getStart(); in FactorOutConstant() 288 A->getNoWrapFlags(SCEV::FlagNW)); in FactorOutConstant() 299 static void SimplifyAddOperands(SmallVectorImpl<const SCEV *> &Ops, in SimplifyAddOperands() 306 SmallVector<const SCEV *, 8> NoAddRecs(Ops.begin(), Ops.end() - NumAddRecs); in SimplifyAddOperands() [all …]
|
/external/swiftshader/third_party/LLVM/lib/Analysis/ |
D | ScalarEvolutionNormalization.cpp | 73 DenseMap<const SCEV*, const SCEV*> Transformed; 80 const SCEV *TransformSubExpr(const SCEV *S, Instruction *User, 84 const SCEV *TransformImpl(const SCEV *S, Instruction *User, 91 const SCEV *PostIncTransform:: 92 TransformImpl(const SCEV *S, Instruction *User, Value *OperandValToReplace) { in TransformImpl() 95 const SCEV *O = X->getOperand(); in TransformImpl() 96 const SCEV *N = TransformSubExpr(O, User, OperandValToReplace); in TransformImpl() 109 SmallVector<const SCEV *, 8> Operands; in TransformImpl() 119 const SCEV *Result = SE.getAddRecExpr(Operands, L, SCEV::FlagAnyWrap); in TransformImpl() 124 const SCEV *TransformedStep = in TransformImpl() [all …]
|
D | ScalarEvolution.cpp | 123 void SCEV::dump() const { in dump() 128 void SCEV::print(raw_ostream &OS) const { in print() 135 const SCEV *Op = Trunc->getOperand(); in print() 142 const SCEV *Op = ZExt->getOperand(); in print() 149 const SCEV *Op = SExt->getOperand(); in print() 231 Type *SCEV::getType() const { in getType() 259 bool SCEV::isZero() const { in isZero() 265 bool SCEV::isOne() const { in isOne() 271 bool SCEV::isAllOnesValue() const { in isAllOnesValue() 278 SCEV(FoldingSetNodeIDRef(), scCouldNotCompute) {} in SCEVCouldNotCompute() [all …]
|
D | LoopDependenceAnalysis.cpp | 107 static inline const SCEV *GetZeroSCEV(ScalarEvolution *SE) { in GetZeroSCEV() 139 void LoopDependenceAnalysis::getLoops(const SCEV *S, in getLoops() 147 bool LoopDependenceAnalysis::isLoopInvariant(const SCEV *S) const { in isLoopInvariant() 153 bool LoopDependenceAnalysis::isAffine(const SCEV *S) const { in isAffine() 158 bool LoopDependenceAnalysis::isZIVPair(const SCEV *A, const SCEV *B) const { in isZIVPair() 162 bool LoopDependenceAnalysis::isSIVPair(const SCEV *A, const SCEV *B) const { in isSIVPair() 170 LoopDependenceAnalysis::analyseZIV(const SCEV *A, in analyseZIV() 171 const SCEV *B, in analyseZIV() 178 LoopDependenceAnalysis::analyseSIV(const SCEV *A, in analyseSIV() 179 const SCEV *B, in analyseSIV() [all …]
|
D | ScalarEvolutionExpander.cpp | 185 static bool FactorOutConstant(const SCEV *&S, in FactorOutConstant() 186 const SCEV *&Remainder, in FactorOutConstant() 187 const SCEV *Factor, in FactorOutConstant() 215 const SCEV *Div = SE.getConstant(CI); in FactorOutConstant() 236 SmallVector<const SCEV *, 4> NewMulOps(M->op_begin(), M->op_end()); in FactorOutConstant() 247 const SCEV *SOp = M->getOperand(i); in FactorOutConstant() 248 const SCEV *Remainder = SE.getConstant(SOp->getType(), 0); in FactorOutConstant() 251 SmallVector<const SCEV *, 4> NewMulOps(M->op_begin(), M->op_end()); in FactorOutConstant() 262 const SCEV *Step = A->getStepRecurrence(SE); in FactorOutConstant() 263 const SCEV *StepRem = SE.getConstant(Step->getType(), 0); in FactorOutConstant() [all …]
|
/external/llvm/lib/Transforms/Utils/ |
D | SimplifyIndVar.cpp | 93 const SCEV *FoldedExpr = nullptr; in foldIVUser() 161 const SCEV *S = SE->getSCEV(ICmp->getOperand(IVOperIdx)); in eliminateIVComparison() 162 const SCEV *X = SE->getSCEV(ICmp->getOperand(1 - IVOperIdx)); in eliminateIVComparison() 170 const SCEV *InvariantLHS, *InvariantRHS; in eliminateIVComparison() 243 const SCEV *IncomingS = SE->getSCEV(Incoming); in eliminateIVComparison() 279 const SCEV *S = SE->getSCEV(Rem->getOperand(0)); in eliminateIVRemainder() 280 const SCEV *X = SE->getSCEV(Rem->getOperand(1)); in eliminateIVRemainder() 294 const SCEV *LessOne = SE->getMinusSCEV(S, SE->getOne(S->getType())); in eliminateIVRemainder() 323 typedef const SCEV *(ScalarEvolution::*OperationFunctionTy)( in eliminateOverflowIntrinsic() 324 const SCEV *, const SCEV *, SCEV::NoWrapFlags); in eliminateOverflowIntrinsic() [all …]
|
/external/swiftshader/third_party/LLVM/lib/Transforms/Scalar/ |
D | LoopStrengthReduce.cpp | 124 typedef DenseMap<const SCEV *, RegSortData> RegUsesTy; 127 SmallVector<const SCEV *, 16> RegSequence; 130 void CountRegister(const SCEV *Reg, size_t LUIdx); 131 void DropRegister(const SCEV *Reg, size_t LUIdx); 134 bool isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const; 136 const SmallBitVector &getUsedByIndices(const SCEV *Reg) const; 140 typedef SmallVectorImpl<const SCEV *>::iterator iterator; 141 typedef SmallVectorImpl<const SCEV *>::const_iterator const_iterator; 151 RegUseTracker::CountRegister(const SCEV *Reg, size_t LUIdx) { in CountRegister() 162 RegUseTracker::DropRegister(const SCEV *Reg, size_t LUIdx) { in DropRegister() [all …]
|
D | LoopIdiomRecognize.cpp | 79 bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount, 82 bool processLoopStore(StoreInst *SI, const SCEV *BECount); 83 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount); 89 const SCEV *BECount); 93 const SCEV *BECount); 185 const SCEV *BECount = SE->getBackedgeTakenCount(L); in runOnLoop() 225 bool LoopIdiomRecognize::runOnLoopBlock(BasicBlock *BB, const SCEV *BECount, in runOnLoopBlock() 269 bool LoopIdiomRecognize::processLoopStore(StoreInst *SI, const SCEV *BECount) { in processLoopStore() 328 processLoopMemSet(MemSetInst *MSI, const SCEV *BECount) { in processLoopMemSet() 369 Loop *L, const SCEV *BECount, in mayLoopAccessLocation() [all …]
|
/external/llvm/lib/Transforms/Scalar/ |
D | LoopStrengthReduce.cpp | 157 typedef DenseMap<const SCEV *, RegSortData> RegUsesTy; 160 SmallVector<const SCEV *, 16> RegSequence; 163 void countRegister(const SCEV *Reg, size_t LUIdx); 164 void dropRegister(const SCEV *Reg, size_t LUIdx); 167 bool isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const; 169 const SmallBitVector &getUsedByIndices(const SCEV *Reg) const; 173 typedef SmallVectorImpl<const SCEV *>::iterator iterator; 174 typedef SmallVectorImpl<const SCEV *>::const_iterator const_iterator; 184 RegUseTracker::countRegister(const SCEV *Reg, size_t LUIdx) { in countRegister() 195 RegUseTracker::dropRegister(const SCEV *Reg, size_t LUIdx) { in dropRegister() [all …]
|
D | AlignmentFromAssumptions.cpp | 93 static unsigned getNewAlignmentDiff(const SCEV *DiffSCEV, in getNewAlignmentDiff() 94 const SCEV *AlignSCEV, in getNewAlignmentDiff() 97 const SCEV *DiffAlignDiv = SE->getUDivExpr(DiffSCEV, AlignSCEV); in getNewAlignmentDiff() 98 const SCEV *DiffAlign = SE->getMulExpr(DiffAlignDiv, AlignSCEV); in getNewAlignmentDiff() 99 const SCEV *DiffUnitsSCEV = SE->getMinusSCEV(DiffAlign, DiffSCEV); in getNewAlignmentDiff() 128 static unsigned getNewAlignment(const SCEV *AASCEV, const SCEV *AlignSCEV, in getNewAlignment() 129 const SCEV *OffSCEV, Value *Ptr, in getNewAlignment() 131 const SCEV *PtrSCEV = SE->getSCEV(Ptr); in getNewAlignment() 132 const SCEV *DiffSCEV = SE->getMinusSCEV(PtrSCEV, AASCEV); in getNewAlignment() 160 const SCEV *DiffStartSCEV = DiffARSCEV->getStart(); in getNewAlignment() [all …]
|
D | InductiveRangeCheckElimination.cpp | 118 const SCEV *Offset = nullptr; 119 const SCEV *Scale = nullptr; 134 const SCEV *getOffset() const { return Offset; } in getOffset() 135 const SCEV *getScale() const { return Scale; } in getScale() 167 const SCEV *Begin; 168 const SCEV *End; 171 Range(const SCEV *Begin, const SCEV *End) : Begin(Begin), End(End) { in Range() 176 const SCEV *getBegin() const { return Begin; } in getBegin() 177 const SCEV *getEnd() const { return End; } in getEnd() 259 const SCEV *S = SE.getSCEV(V); in parseRangeCheckICmp() [all …]
|
D | NaryReassociate.cpp | 156 Instruction *tryReassociatedBinaryOp(const SCEV *LHS, Value *RHS, 163 const SCEV *getBinarySCEV(BinaryOperator *I, const SCEV *LHS, 164 const SCEV *RHS); 168 Instruction *findClosestMatchingDominator(const SCEV *CandidateExpr, 191 DenseMap<const SCEV *, SmallVector<WeakVH, 2>> SeenExprs; 250 const SCEV *OldSCEV = SE->getSCEV(&*I); in doOneIteration() 262 const SCEV *NewSCEV = SE->getSCEV(&*I); in doOneIteration() 374 SmallVector<const SCEV *, 4> IndexExprs; in tryReassociateGEPAtIndex() 389 const SCEV *CandidateExpr = SE->getGEPExpr( in tryReassociateGEPAtIndex() 457 const SCEV *AExpr = SE->getSCEV(A), *BExpr = SE->getSCEV(B); in tryReassociateBinaryOp() [all …]
|
/external/swiftshader/third_party/LLVM/test/Other/ |
D | constant-fold-gep.ll | 13 ; "SCEV" - ScalarEvolution but no targetdata. 14 ; RUN: opt -analyze -scalar-evolution < %s | FileCheck --check-prefix=SCEV %s 178 ; SCEV: Classifying expressions for: @goo8 179 ; SCEV: %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) to i8* 180 ; SCEV: --> ((-1 * sizeof(i8)) + inttoptr (i32 1 to i8*)) 181 ; SCEV: Classifying expressions for: @goo1 182 ; SCEV: %t = bitcast i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) to i1* 183 ; SCEV: --> ((-1 * sizeof(i1)) + inttoptr (i32 1 to i1*)) 184 ; SCEV: Classifying expressions for: @foo8 185 ; SCEV: %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) to i8* [all …]
|
/external/llvm/test/Other/ |
D | constant-fold-gep.ll | 13 ; "SCEV" - ScalarEvolution with default target layout 14 ; RUN: opt -analyze -scalar-evolution < %s | FileCheck --check-prefix=SCEV %s 181 ; SCEV: Classifying expressions for: @goo8 182 ; SCEV: %t = bitcast i8* getelementptr (i8, i8* inttoptr (i32 1 to i8*), i32 -1) to i8* 183 ; SCEV: --> (-1 + inttoptr (i32 1 to i8*)) 184 ; SCEV: Classifying expressions for: @goo1 185 ; SCEV: %t = bitcast i1* getelementptr (i1, i1* inttoptr (i32 1 to i1*), i32 -1) to i1* 186 ; SCEV: --> (-1 + inttoptr (i32 1 to i1*)) 187 ; SCEV: Classifying expressions for: @foo8 188 ; SCEV: %t = bitcast i8* getelementptr (i8, i8* inttoptr (i32 1 to i8*), i32 -2) to i8* [all …]
|