| /src/external/apache2/llvm/dist/llvm/lib/Analysis/ |
| ScalarEvolutionNormalization.cpp | 39 ScalarEvolution &SE) 40 : SCEVRewriteVisitor<NormalizeDenormalizeRewriter>(SE), Kind(Kind), 54 return SE.getAddRecExpr(Operands, AR->getLoop(), SCEV::FlagAnyWrap); 66 Operands[i] = SE.getAddExpr(Operands[i], Operands[i + 1]); 90 Operands[i] = SE.getMinusSCEV(Operands[i], Operands[i + 1]); 93 return SE.getAddRecExpr(Operands, AR->getLoop(), SCEV::FlagAnyWrap); 98 ScalarEvolution &SE) { 102 return NormalizeDenormalizeRewriter(Normalize, Pred, SE).visit(S); 106 ScalarEvolution &SE) { 107 return NormalizeDenormalizeRewriter(Normalize, Pred, SE).visit(S) [all...] |
| LoopCacheAnalysis.cpp | 81 const Loop &L, ScalarEvolution &SE) { 90 const SCEV *Step = AR->getStepRecurrence(SE); 95 if (!SE.isLoopInvariant(Start, &L) || !SE.isLoopInvariant(Step, &L)) 98 const SCEV *StepRec = AR->getStepRecurrence(SE); 99 if (StepRec && SE.isKnownNegative(StepRec)) 100 StepRec = SE.getNegativeSCEV(StepRec); 107 static const SCEV *computeTripCount(const Loop &L, ScalarEvolution &SE) { 108 const SCEV *BackedgeTakenCount = SE.getBackedgeTakenCount(&L); 113 return SE.getAddExpr(BackedgeTakenCount [all...] |
| ScalarEvolutionDivision.cpp | 57 void SCEVDivision::divide(ScalarEvolution &SE, const SCEV *Numerator, 62 SCEVDivision D(SE, Numerator, Denominator); 90 divide(SE, *Quotient, Op, &Q, &R); 125 Quotient = SE.getConstant(QuotientVal); 126 Remainder = SE.getConstant(RemainderVal); 135 divide(SE, Numerator->getStart(), Denominator, &StartQ, &StartR); 136 divide(SE, Numerator->getStepRecurrence(SE), Denominator, &StepQ, &StepR); 142 Quotient = SE.getAddRecExpr(StartQ, StepQ, Numerator->getLoop(), 144 Remainder = SE.getAddRecExpr(StartR, StepR, Numerator->getLoop() [all...] |
| ScalarEvolutionAliasAnalysis.cpp | 35 const SCEV *AS = SE.getSCEV(const_cast<Value *>(LocA.Ptr)); 36 const SCEV *BS = SE.getSCEV(const_cast<Value *>(LocB.Ptr)); 44 if (SE.getEffectiveSCEVType(AS->getType()) == 45 SE.getEffectiveSCEVType(BS->getType())) { 46 unsigned BitWidth = SE.getTypeSizeInBits(AS->getType()); 55 const SCEV *BA = SE.getMinusSCEV(BS, AS); 60 if (ASizeInt.ule(SE.getUnsignedRange(BA).getUnsignedMin()) && 61 (-BSizeInt).uge(SE.getUnsignedRange(BA).getUnsignedMax())) 69 const SCEV *AB = SE.getMinusSCEV(AS, BS); 74 if (BSizeInt.ule(SE.getUnsignedRange(AB).getUnsignedMin()) & [all...] |
| DependenceAnalysis.cpp | 128 auto &SE = FAM.getResult<ScalarEvolutionAnalysis>(F); 130 return DependenceInfo(&F, &AA, &SE, &LI); 156 auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); 158 info.reset(new DependenceInfo(&F, &AA, &SE, &LI)); 364 return SE->getNegativeSCEV(C); 395 A = SE->getOne(D->getType()); 396 B = SE->getNegativeSCEV(A); 397 C = SE->getNegativeSCEV(D); 404 SE = NewSE; 484 const SCEV *Prod1 = SE->getMulExpr(X->getA(), Y->getB()) [all...] |
| Delinearization.cpp | 46 ScalarEvolution *SE; 60 ScalarEvolution *SE) { 72 const SCEV *AccessFn = SE->getSCEVAtScope(getPointerOperand(&Inst), L); 75 dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFn)); 79 AccessFn = SE->getMinusSCEV(AccessFn, BasePointer); 87 SE->delinearize(AccessFn, Subscripts, Sizes, SE->getElementSize(&Inst)); 119 SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE(); 125 printDelinearization(O, F, LI, SE);
|
| IVUsers.cpp | 42 return IVUsers(&L, &AR.AC, &AR.LI, &AR.DT, &AR.SE); 61 ScalarEvolution *SE, LoopInfo *LI) { 69 SE->getSCEVAtScope(AR, LI->getLoopFor(I->getParent())) != AR); 73 return isInteresting(AR->getStart(), I, L, SE, LI) && 74 !isInteresting(AR->getStepRecurrence(*SE), I, L, SE, LI); 81 if (isInteresting(Op, I, L, SE, LI)) { 177 if (!SE->isSCEVable(I->getType())) 189 uint64_t Width = SE->getTypeSizeInBits(I->getType()); 199 const SCEV *ISE = SE->getSCEV(I) [all...] |
| /src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/ |
| ScalarEvolutionNormalization.h | 55 ScalarEvolution &SE); 60 ScalarEvolution &SE); 65 ScalarEvolution &SE);
|
| ScalarEvolutionAliasAnalysis.h | 27 ScalarEvolution &SE; 30 explicit SCEVAAResult(ScalarEvolution &SE) : AAResultBase(), SE(SE) {} 31 SCEVAAResult(SCEVAAResult &&Arg) : AAResultBase(std::move(Arg)), SE(Arg.SE) {}
|
| LoopUnrollAnalyzer.h | 50 ScalarEvolution &SE, const Loop *L) 51 : SimplifiedValues(SimplifiedValues), SE(SE), L(L) { 52 IterationNumber = SE.getConstant(APInt(64, Iteration)); 81 ScalarEvolution &SE;
|
| /src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Utils/ |
| LoopPeel.h | 23 bool peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE, 27 gatherPeelingPreferences(Loop *L, ScalarEvolution &SE, 35 unsigned &TripCount, ScalarEvolution &SE,
|
| LoopRotationUtils.h | 34 AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE,
|
| SimplifyIndVar.h | 51 bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, 58 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT, 78 LoopInfo *LI, ScalarEvolution *SE, SCEVExpander &Rewriter,
|
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/ |
| InductiveRangeCheckElimination.cpp | 150 static bool parseRangeCheckICmp(Loop *L, ICmpInst *ICI, ScalarEvolution &SE, 155 extractRangeChecksFromCond(Loop *L, ScalarEvolution &SE, Use &ConditionUse, 199 bool isEmpty(ScalarEvolution &SE, bool IsSigned) const { 203 return SE.isKnownPredicate(ICmpInst::ICMP_SGE, Begin, End); 205 return SE.isKnownPredicate(ICmpInst::ICMP_UGE, Begin, End); 216 Optional<Range> computeSafeIterationSpace(ScalarEvolution &SE, 226 extractRangeChecksFromBranch(BranchInst *BI, Loop *L, ScalarEvolution &SE, 234 ScalarEvolution &SE; 248 InductiveRangeCheckElimination(ScalarEvolution &SE, 251 : SE(SE), BPI(BPI), DT(DT), LI(LI), GetBFI(GetBFI) { [all...] |
| AlignmentFromAssumptions.cpp | 97 ScalarEvolution *SE) { 99 const SCEV *DiffUnitsSCEV = SE->getURemExpr(DiffSCEV, AlignSCEV); 129 ScalarEvolution *SE) { 130 const SCEV *PtrSCEV = SE->getSCEV(Ptr); 134 PtrSCEV = SE->getTruncateOrZeroExtend( 135 PtrSCEV, SE->getEffectiveSCEVType(AASCEV->getType())); 136 const SCEV *DiffSCEV = SE->getMinusSCEV(PtrSCEV, AASCEV); 140 DiffSCEV = SE->getNoopOrSignExtend(DiffSCEV, OffSCEV->getType()); 144 DiffSCEV = SE->getAddExpr(DiffSCEV, OffSCEV); 150 if (MaybeAlign NewAlignment = getNewAlignmentDiff(DiffSCEV, AlignSCEV, SE)) { [all...] |
| LoopDeletion.cpp | 54 static bool isLoopDead(Loop *L, ScalarEvolution &SE, 90 SE.forgetLoopDispositions(L); 142 breakBackedgeIfNotTaken(Loop *L, DominatorTree &DT, ScalarEvolution &SE, 150 auto *BTC = SE.getBackedgeTakenCount(L); 154 breakLoopBackedge(L, DT, SE, LI, MSSA); 173 ScalarEvolution &SE, LoopInfo &LI, 196 SE.forgetLoop(L); 207 deleteDeadLoop(L, &DT, &SE, &LI, MSSA); 227 if (!isLoopDead(L, SE, ExitingBlocks, ExitBlock, Changed, Preheader)) { 235 const SCEV *S = SE.getConstantMaxBackedgeTakenCount(L) [all...] |
| IndVarSimplify.cpp | 144 ScalarEvolution *SE; 173 IndVarSimplify(LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, 176 : LI(LI), SE(SE), DT(DT), DL(DL), TLI(TLI), TTI(TTI), 425 SE->forgetLoop(L); 512 ScalarEvolution *SE, 519 uint64_t Width = SE->getTypeSizeInBits(Ty); 527 uint64_t NarrowIVWidth = SE->getTypeSizeInBits(WI.NarrowIV->getType()); 545 WI.WidestNativeType = SE->getEffectiveSCEVType(Ty); 554 if (Width > SE->getTypeSizeInBits(WI.WidestNativeType) [all...] |
| BDCE.cpp | 117 if (SExtInst *SE = dyn_cast<SExtInst>(&I)) { 118 APInt Demanded = DB.getDemandedBits(SE); 119 const uint32_t SrcBitSize = SE->getSrcTy()->getScalarSizeInBits(); 120 auto *const DstTy = SE->getDestTy(); 123 clearAssumptionsOfUsers(SE, DB); 124 IRBuilder<> Builder(SE); 126 Builder.CreateZExt(SE->getOperand(0), DstTy, SE->getName())); 127 Worklist.push_back(SE);
|
| LoopPredication.cpp | 255 ScalarEvolution *SE; 312 ScalarEvolution *SE, LoopInfo *LI, 314 : AA(AA), DT(DT), SE(SE), LI(LI), BPI(BPI) {}; 333 auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE(); 339 LoopPredication LP(AA, DT, SE, LI, &BPI); 366 LoopPredication LP(&AR.AA, &AR.DT, &AR.SE, &AR.LI, &BPI); 379 const SCEV *LHSS = SE->getSCEV(LHS); 382 const SCEV *RHSS = SE->getSCEV(RHS); 387 if (SE->isLoopInvariant(LHSS, L)) [all...] |
| /src/external/apache2/llvm/dist/llvm/include/llvm/ADT/ |
| SetOperations.h | 25 for (typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end(); 26 SI != SE; ++SI) 52 for (typename S1Ty::const_iterator SI = S1.begin(), SE = S1.end(); 53 SI != SE; ++SI) 63 for (typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end(); 64 SI != SE; ++SI)
|
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Instrumentation/ |
| BoundsChecking.cpp | 60 BuilderTy &IRB, ScalarEvolution &SE) { 79 auto SizeRange = SE.getUnsignedRange(SE.getSCEV(Size)); 80 auto OffsetRange = SE.getUnsignedRange(SE.getSCEV(Offset)); 81 auto NeededSizeRange = SE.getUnsignedRange(SE.getSCEV(NeededSizeVal)); 144 ScalarEvolution &SE) { 159 ObjSizeEval, IRB, SE); 163 DL, TLI, ObjSizeEval, IRB, SE); [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Vectorize/ |
| VPlanTransforms.h | 30 SmallPtrSetImpl<Instruction *> &DeadInstructions, ScalarEvolution &SE);
|
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/ |
| ScalarEvolutionExpander.cpp | 88 SE.DT.dominates(cast<Instruction>(Ret), &*BIP)); 157 assert(SE.getTypeSizeInBits(V->getType()) == SE.getTypeSizeInBits(Ty) && 187 SE.getTypeSizeInBits(Ty) == SE.getTypeSizeInBits(V->getType())) { 191 SE.getTypeSizeInBits(CI->getType()) == 192 SE.getTypeSizeInBits(CI->getOperand(0)->getType())) 197 SE.getTypeSizeInBits(CE->getType()) == 198 SE.getTypeSizeInBits(CE->getOperand(0)->getType())) 261 while (const Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock())) [all...] |
| SimplifyIndVar.cpp | 55 ScalarEvolution *SE; 64 SimplifyIndvar(Loop *Loop, ScalarEvolution *SE, DominatorTree *DT, 68 : L(Loop), LI(LI), SE(SE), DT(DT), TTI(TTI), Rewriter(Rewriter), 152 assert(SE->isSCEVable(IVSrc->getType()) && "Expect SCEVable IV operand"); 164 FoldedExpr = SE->getUDivExpr(SE->getSCEV(IVSrc), SE->getSCEV(D)); 168 SE->getSCEV(IVSrc) != SE->getMulExpr(FoldedExpr, SE->getSCEV(D)) [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Target/ARM/ |
| MVETailPredication.cpp | 85 ScalarEvolution *SE = nullptr; 137 SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE(); 212 auto *EC= SE->getSCEV(ElemCount); 213 auto *TC = SE->getSCEV(TripCount); 223 if (!SE->isLoopInvariant(EC, L)) { 266 auto *VW = SE->getSCEV(ConstantInt::get(TripCount->getType(), VectorWidth)); 268 auto *ECPlusVWMinus1 = SE->getAddExpr(EC, 269 SE->getSCEV(ConstantInt::get(TripCount->getType(), VectorWidth - 1))); 272 auto *Ceil = SE->getUDivExpr(ECPlusVWMinus1, VW); 296 bool Zero = SE->getMinusSCEV [all...] |