| /NextBSD/contrib/llvm/include/llvm/Analysis/ |
| HD | ScalarEvolution.h | 51 class SCEV; variable 52 template<> struct FoldingSetTrait<SCEV>; 58 class SCEV : public FoldingSetNode { 59 friend struct FoldingSetTrait<SCEV>; 74 SCEV(const SCEV &) = delete; 75 void operator=(const SCEV &) = delete; 102 explicit SCEV(const FoldingSetNodeIDRef ID, unsigned SCEVTy) : 142 template<> struct FoldingSetTrait<SCEV> : DefaultFoldingSetTrait<SCEV> { 143 static void Profile(const SCEV &X, FoldingSetNodeID& ID) { 146 static bool Equals(const SCEV &X, const FoldingSetNodeID &ID, [all …]
|
| HD | DependenceAnalysis.h | 53 class SCEV; variable 98 const SCEV *Distance; // NULL implies no distance available. 158 virtual const SCEV *getDistance(unsigned Level) const { return nullptr; } in getDistance() 248 const SCEV *getDistance(unsigned Level) const override; 332 const SCEV *getSplitIteration(const Dependence &Dep, unsigned Level); 344 const SCEV *Src; 345 const SCEV *Dst; 353 const SCEV *Coeff; 354 const SCEV *PosPart; 355 const SCEV *NegPart; [all …]
|
| HD | ScalarEvolutionExpressions.h | 38 class SCEVConstant : public SCEV { 43 SCEV(ID, scConstant), V(v) {} in SCEVConstant() 50 static inline bool classof(const SCEV *S) { in classof() 58 class SCEVCastExpr : public SCEV { 60 const SCEV *Op; 64 unsigned SCEVTy, const SCEV *op, Type *ty); 67 const SCEV *getOperand() const { return Op; } in getOperand() 71 static inline bool classof(const SCEV *S) { in classof() 86 const SCEV *op, Type *ty); 90 static inline bool classof(const SCEV *S) { in classof() [all …]
|
| HD | 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; 120 bool isHighCostExpansion(const SCEV *Expr, Loop *L) { 121 SmallPtrSet<const SCEV *, 8> Processed; 147 Value *expandCodeFor(const SCEV *SH, Type *Ty, Instruction *I); 200 bool isHighCostExpansionHelper(const SCEV *S, Loop *L, 201 SmallPtrSetImpl<const SCEV *> &Processed); 221 Value *expandAddToGEP(const SCEV *const *op_begin, 222 const SCEV *const *op_end, [all …]
|
| HD | LoopAccessAnalysis.h | 35 class SCEV; variable 303 const SCEV *Start; 305 const SCEV *End; 314 const SCEV *Expr; 316 PointerInfo(Value *PointerValue, const SCEV *Start, const SCEV *End, in PointerInfo() 318 const SCEV *Expr) in PointerInfo() 363 const SCEV *High; 366 const SCEV *Low; 564 const SCEV *replaceSymbolicStrideSCEV(ScalarEvolution *SE,
|
| HD | ScalarEvolutionNormalization.h | 47 class SCEV; variable 68 const SCEV *TransformForPostIncUse(TransformKind Kind, 69 const SCEV *S,
|
| HD | IVUsers.h | 29 class SCEV; variable 157 const SCEV *getReplacementExpr(const IVStrideUse &IU) const; 160 const SCEV *getExpr(const IVStrideUse &IU) const; 162 const SCEV *getStride(const IVStrideUse &IU, const Loop *L) const;
|
| /NextBSD/contrib/llvm/lib/Analysis/ |
| HD | 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 …]
|
| HD | ScalarEvolution.cpp | 136 void SCEV::dump() const { in dump() 142 void SCEV::print(raw_ostream &OS) const { in print() 149 const SCEV *Op = Trunc->getOperand(); in print() 156 const SCEV *Op = ZExt->getOperand(); in print() 163 const SCEV *Op = SExt->getOperand(); in print() 252 Type *SCEV::getType() const { in getType() 277 bool SCEV::isZero() const { in isZero() 283 bool SCEV::isOne() const { in isOne() 289 bool SCEV::isAllOnesValue() const { in isAllOnesValue() 297 bool SCEV::isNonConstantNegative() const { in isNonConstantNegative() [all …]
|
| HD | DependenceAnalysis.cpp | 249 const SCEV *FullDependence::getDistance(unsigned Level) const { in getDistance() 292 const SCEV *DependenceAnalysis::Constraint::getX() const { in getX() 300 const SCEV *DependenceAnalysis::Constraint::getY() const { in getY() 308 const SCEV *DependenceAnalysis::Constraint::getA() const { in getA() 317 const SCEV *DependenceAnalysis::Constraint::getB() const { in getB() 326 const SCEV *DependenceAnalysis::Constraint::getC() const { in getC() 335 const SCEV *DependenceAnalysis::Constraint::getD() const { in getD() 349 void DependenceAnalysis::Constraint::setPoint(const SCEV *X, in setPoint() 350 const SCEV *Y, in setPoint() 359 void DependenceAnalysis::Constraint::setLine(const SCEV *AA, in setLine() [all …]
|
| HD | ScalarEvolutionExpander.cpp | 211 static bool FactorOutConstant(const SCEV *&S, const SCEV *&Remainder, in FactorOutConstant() 212 const SCEV *Factor, ScalarEvolution &SE, in FactorOutConstant() 239 const SCEV *Div = SE.getConstant(CI); in FactorOutConstant() 258 SmallVector<const SCEV *, 4> NewMulOps(M->op_begin(), M->op_end()); in FactorOutConstant() 268 const SCEV *Step = A->getStepRecurrence(SE); in FactorOutConstant() 269 const SCEV *StepRem = SE.getConstant(Step->getType(), 0); in FactorOutConstant() 274 const SCEV *Start = A->getStart(); in FactorOutConstant() 278 A->getNoWrapFlags(SCEV::FlagNW)); in FactorOutConstant() 289 static void SimplifyAddOperands(SmallVectorImpl<const SCEV *> &Ops, in SimplifyAddOperands() 296 SmallVector<const SCEV *, 8> NoAddRecs(Ops.begin(), Ops.end() - NumAddRecs); in SimplifyAddOperands() [all …]
|
| HD | ScalarEvolutionAliasAnalysis.cpp | 59 Value *GetBaseValue(const SCEV *S); 92 ScalarEvolutionAliasAnalysis::GetBaseValue(const SCEV *S) { in GetBaseValue() 99 const SCEV *Last = A->getOperand(A->getNumOperands()-1); in GetBaseValue() 119 const SCEV *AS = SE->getSCEV(const_cast<Value *>(LocA.Ptr)); in alias() 120 const SCEV *BS = SE->getSCEV(const_cast<Value *>(LocB.Ptr)); in alias() 134 const SCEV *BA = SE->getMinusSCEV(BS, AS); in alias() 148 const SCEV *AB = SE->getMinusSCEV(AS, BS); in alias()
|
| HD | IVUsers.cpp | 53 static bool isInteresting(const SCEV *S, const Instruction *I, const Loop *L, in isInteresting() 149 const SCEV *ISE = SE->getSCEV(I); in AddUsersImpl() 204 const SCEV *OriginalISE = ISE; in AddUsersImpl() 215 const SCEV *DenormalizedISE = in AddUsersImpl() 327 const SCEV *IVUsers::getReplacementExpr(const IVStrideUse &IU) const { in getReplacementExpr() 332 const SCEV *IVUsers::getExpr(const IVStrideUse &IU) const { in getExpr() 340 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) { in findAddRecForLoop() 358 const SCEV *IVUsers::getStride(const IVStrideUse &IU, const Loop *L) const { in getStride()
|
| HD | LoopAccessAnalysis.cpp | 90 const SCEV *llvm::replaceSymbolicStrideSCEV(ScalarEvolution *SE, in replaceSymbolicStrideSCEV() 94 const SCEV *OrigSCEV = SE->getSCEV(Ptr); in replaceSymbolicStrideSCEV() 111 const SCEV *ByOne = in replaceSymbolicStrideSCEV() 126 const SCEV *Sc = replaceSymbolicStrideSCEV(SE, Strides, Ptr); in insert() 129 const SCEV *Ex = SE->getBackedgeTakenCount(Lp); in insert() 130 const SCEV *ScEnd = AR->evaluateAtIteration(Ex, *SE); in insert() 147 static const SCEV *getMinFromExprs(const SCEV *I, const SCEV *J, in getMinFromExprs() 149 const SCEV *Diff = SE->getMinusSCEV(J, I); in getMinFromExprs() 160 const SCEV *Start = RtCheck.Pointers[Index].Start; in addPointer() 161 const SCEV *End = RtCheck.Pointers[Index].End; in addPointer() [all …]
|
| /NextBSD/contrib/llvm/lib/Transforms/Scalar/ |
| HD | LoopStrengthReduce.cpp | 136 typedef DenseMap<const SCEV *, RegSortData> RegUsesTy; 139 SmallVector<const SCEV *, 16> RegSequence; 142 void CountRegister(const SCEV *Reg, size_t LUIdx); 143 void DropRegister(const SCEV *Reg, size_t LUIdx); 146 bool isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const; 148 const SmallBitVector &getUsedByIndices(const SCEV *Reg) const; 152 typedef SmallVectorImpl<const SCEV *>::iterator iterator; 153 typedef SmallVectorImpl<const SCEV *>::const_iterator const_iterator; 163 RegUseTracker::CountRegister(const SCEV *Reg, size_t LUIdx) { in CountRegister() 174 RegUseTracker::DropRegister(const SCEV *Reg, size_t LUIdx) { in DropRegister() [all …]
|
| HD | AlignmentFromAssumptions.cpp | 75 bool extractAlignmentInfo(CallInst *I, Value *&AAPtr, const SCEV *&AlignSCEV, 76 const SCEV *&OffSCEV); 101 static unsigned getNewAlignmentDiff(const SCEV *DiffSCEV, in getNewAlignmentDiff() 102 const SCEV *AlignSCEV, in getNewAlignmentDiff() 105 const SCEV *DiffAlignDiv = SE->getUDivExpr(DiffSCEV, AlignSCEV); in getNewAlignmentDiff() 106 const SCEV *DiffAlign = SE->getMulExpr(DiffAlignDiv, AlignSCEV); in getNewAlignmentDiff() 107 const SCEV *DiffUnitsSCEV = SE->getMinusSCEV(DiffAlign, DiffSCEV); in getNewAlignmentDiff() 136 static unsigned getNewAlignment(const SCEV *AASCEV, const SCEV *AlignSCEV, in getNewAlignment() 137 const SCEV *OffSCEV, Value *Ptr, in getNewAlignment() 139 const SCEV *PtrSCEV = SE->getSCEV(Ptr); in getNewAlignment() [all …]
|
| HD | InductiveRangeCheckElimination.cpp | 119 const SCEV *Offset; 120 const SCEV *Scale; 131 const SCEV *&Index, Value *&UpperLimit); 137 const SCEV *getOffset() const { return Offset; } in getOffset() 138 const SCEV *getScale() const { return Scale; } in getScale() 170 const SCEV *Begin; 171 const SCEV *End; 174 Range(const SCEV *Begin, const SCEV *End) : Begin(Begin), End(End) { in Range() 179 const SCEV *getBegin() const { return Begin; } in getBegin() 180 const SCEV *getEnd() const { return End; } in getEnd() [all …]
|
| HD | NaryReassociate.cpp | 153 Instruction *tryReassociatedAdd(const SCEV *LHS, Value *RHS, Instruction *I); 157 Instruction *findClosestMatchingDominator(const SCEV *CandidateExpr, 185 DenseMap<const SCEV *, SmallVector<Instruction *, 2>> SeenExprs; 243 const SCEV *OldSCEV = SE->getSCEV(I); in doOneIteration() 253 const SCEV *NewSCEV = SE->getSCEV(I); in doOneIteration() 413 SmallVector<const SCEV *, 4> IndexExprs; in tryReassociateGEPAtIndex() 428 const SCEV *CandidateExpr = SE->getGEPExpr( in tryReassociateGEPAtIndex() 495 const SCEV *AExpr = SE->getSCEV(A), *BExpr = SE->getSCEV(B); in tryReassociateAdd() 496 const SCEV *RHSExpr = SE->getSCEV(RHS); in tryReassociateAdd() 509 Instruction *NaryReassociate::tryReassociatedAdd(const SCEV *LHSExpr, in tryReassociatedAdd() [all …]
|
| HD | IndVarSimplify.cpp | 135 Value *LinearFunctionTestReplace(Loop *L, const SCEV *BackedgeTakenCount, 140 Value *ExpandSCEVIfNeeded(SCEVExpander &Rewriter, const SCEV *S, Loop *L, 200 const SCEV *FromBase = SE->getPointerBase(SE->getSCEV(FromPtr)); in isValidRewrite() 201 const SCEV *ToBase = SE->getPointerBase(SE->getSCEV(ToPtr)); in isValidRewrite() 504 Value *IndVarSimplify::ExpandSCEVIfNeeded(SCEVExpander &Rewriter, const SCEV *S, in ExpandSCEVIfNeeded() 638 const SCEV *ExitValue = SE->getSCEVAtScope(Inst, L->getParentLoop()); in RewriteLoopExitValues() 892 const SCEV *WideIncExpr; 928 const SCEV *GetSCEVByOpCode(const SCEV *LHS, const SCEV *RHS, 1009 const SCEV *WidenIV::GetSCEVByOpCode(const SCEV *LHS, const SCEV *RHS, in GetSCEVByOpCode() 1040 const SCEV *ExtendOperExpr = nullptr; in GetExtendedOperandRecurrence() [all …]
|
| HD | LoopIdiomRecognize.cpp | 148 bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount, 151 bool processLoopStore(StoreInst *SI, const SCEV *BECount); 152 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount); 158 const SCEV *BECount); 162 const SCEV *BECount); 613 const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop); in runOnCountableLoop() 685 bool LoopIdiomRecognize::runOnLoopBlock(BasicBlock *BB, const SCEV *BECount, in runOnLoopBlock() 729 bool LoopIdiomRecognize::processLoopStore(StoreInst *SI, const SCEV *BECount) { in processLoopStore() 789 processLoopMemSet(MemSetInst *MSI, const SCEV *BECount) { in processLoopMemSet() 830 Loop *L, const SCEV *BECount, in mayLoopAccessLocation() [all …]
|
| HD | StraightLineStrengthReduce.cpp | 94 Candidate(Kind CT, const SCEV *B, ConstantInt *Idx, Value *S, in Candidate() 99 const SCEV *Base; 176 void allocateCandidatesAndFindBasisForGEP(const SCEV *B, ConstantInt *Idx, 181 void allocateCandidatesAndFindBasis(Candidate::Kind CT, const SCEV *B, 189 void factorArrayIndex(Value *ArrayIdx, const SCEV *Base, uint64_t ElementSize, 277 static bool isAddFoldable(const SCEV *Base, ConstantInt *Index, Value *Stride, in isAddFoldable() 329 Candidate::Kind CT, const SCEV *B, ConstantInt *Idx, Value *S, in allocateCandidatesAndFindBasis() 463 const SCEV *B, ConstantInt *Idx, Value *S, uint64_t ElementSize, in allocateCandidatesAndFindBasisForGEP() 476 const SCEV *Base, in factorArrayIndex() 516 SmallVector<const SCEV *, 4> IndexExprs; in allocateCandidatesAndFindBasisForGEP() [all …]
|
| HD | LoopRerollPass.cpp | 379 void replace(const SCEV *IterCount); 438 bool reroll(Instruction *IV, Loop *L, BasicBlock *Header, const SCEV *IterCount, 871 const SCEV *StepSCEV = SE->getMinusSCEV(SE->getSCEV(V.Roots[0]), ADR); in findRoots() 872 const SCEV *ScaleSCEV = SE->getConstant(StepSCEV->getType(), N); in findRoots() 1255 void LoopReroll::DAGRootTracker::replace(const SCEV *IterCount) { in replace() 1277 const SCEV *Start = RealIVSCEV->getStart(); in replace() 1281 L, SCEV::FlagAnyWrap)); in replace() 1294 const SCEV *ICSCEV = RealIVSCEV->evaluateAtIteration(IterCount, *SE); in replace() 1297 const SCEV *ICMinus1SCEV = in replace() 1445 const SCEV *IterCount, in reroll() [all …]
|
| /NextBSD/contrib/llvm/lib/Transforms/Utils/ |
| HD | 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() 195 const SCEV *S = SE->getSCEV(Rem->getOperand(0)); in eliminateIVRemainder() 196 const SCEV *X = SE->getSCEV(Rem->getOperand(1)); in eliminateIVRemainder() 210 const SCEV *LessOne = in eliminateIVRemainder() 276 const SCEV *(ScalarEvolution::*GetExprForBO)(const SCEV *, const SCEV *, in strengthenOverflowingOperation() 277 SCEV::NoWrapFlags); in strengthenOverflowingOperation() 298 const SCEV *LHS = SE->getSCEV(BO->getOperand(0)); in strengthenOverflowingOperation() 299 const SCEV *RHS = SE->getSCEV(BO->getOperand(1)); in strengthenOverflowingOperation() [all …]
|
| /NextBSD/contrib/llvm/lib/Target/PowerPC/ |
| HD | PPCLoopPreIncPrep.cpp | 104 struct SCEVLess : std::binary_function<const SCEV *, const SCEV *, bool> 108 bool operator() (const SCEV *X, const SCEV *Y) const { in operator ()() 109 const SCEV *Diff = SE->getMinusSCEV(X, Y); in operator ()() 172 typedef std::multimap<const SCEV *, Instruction *, SCEVLess> Bucket; in runOnLoop() 206 const SCEV *LSCEV = SE->getSCEVAtScope(PtrValue, L); in runOnLoop() 218 const SCEV *Diff = SE->getMinusSCEV(K->first, LSCEV); in runOnLoop() 273 const SCEV *BasePtrStartSCEV = BasePtrSCEV->getStart(); in runOnLoop()
|
| HD | PPCLoopDataPrefetch.cpp | 179 const SCEV *LSCEV = SE->getSCEV(PtrValue); in runOnLoop() 191 const SCEV *PtrDiff = SE->getMinusSCEV(LSCEVAddRec, K->second); in runOnLoop() 204 const SCEV *NextLSCEV = SE->getAddExpr(LSCEVAddRec, SE->getMulExpr( in runOnLoop()
|