/external/llvm/lib/Analysis/ |
D | DependenceAnalysis.cpp | 855 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Src); in checkSrcSubscript() local 856 if (!AddRec) in checkSrcSubscript() 858 const SCEV *Start = AddRec->getStart(); in checkSrcSubscript() 859 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkSrcSubscript() 860 const SCEV *UB = SE->getBackedgeTakenCount(AddRec->getLoop()); in checkSrcSubscript() 864 if (!AddRec->getNoWrapFlags()) in checkSrcSubscript() 870 Loops.set(mapSrcLoop(AddRec->getLoop())); in checkSrcSubscript() 880 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst); in checkDstSubscript() local 881 if (!AddRec) in checkDstSubscript() 883 const SCEV *Start = AddRec->getStart(); in checkDstSubscript() [all …]
|
D | ScalarEvolution.cpp | 1132 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr() local 1134 for (const SCEV *Op : AddRec->operands()) in getTruncateExpr() 1136 return getAddRecExpr(Operands, AddRec->getLoop(), SCEV::FlagAnyWrap); in getTruncateExpr() 2288 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr() local 2289 const Loop *AddRecLoop = AddRec->getLoop(); in getAddExpr() 2300 LIOps.push_back(AddRec->getStart()); in getAddExpr() 2302 SmallVector<const SCEV *, 4> AddRecOps(AddRec->op_begin(), in getAddExpr() 2303 AddRec->op_end()); in getAddExpr() 2312 Flags = AddRec->getNoWrapFlags(setFlags(Flags, SCEV::FlagNW)); in getAddExpr() 2320 if (Ops[i] == AddRec) { in getAddExpr() [all …]
|
/external/swiftshader/third_party/LLVM/lib/Analysis/ |
D | ScalarEvolution.cpp | 856 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr() local 858 for (unsigned i = 0, e = AddRec->getNumOperands(); i != e; ++i) in getTruncateExpr() 859 Operands.push_back(getTruncateExpr(AddRec->getOperand(i), Ty)); in getTruncateExpr() 860 return getAddRecExpr(Operands, AddRec->getLoop(), SCEV::FlagAnyWrap); in getTruncateExpr() 1723 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr() local 1724 const Loop *AddRecLoop = AddRec->getLoop(); in getAddExpr() 1735 LIOps.push_back(AddRec->getStart()); in getAddExpr() 1737 SmallVector<const SCEV *, 4> AddRecOps(AddRec->op_begin(), in getAddExpr() 1738 AddRec->op_end()); in getAddExpr() 1744 Flags = AddRec->getNoWrapFlags(setFlags(Flags, SCEV::FlagNW)); in getAddExpr() [all …]
|
/external/swiftshader/third_party/LLVM/lib/Transforms/Scalar/ |
D | IndVarSimplify.cpp | 949 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>( in GetExtendedOperandRecurrence() local 953 if (!AddRec || AddRec->getLoop() != L) in GetExtendedOperandRecurrence() 955 return AddRec; in GetExtendedOperandRecurrence() 978 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in GetWideRecurrence() local 979 if (!AddRec || AddRec->getLoop() != L) in GetWideRecurrence() 981 return AddRec; in GetWideRecurrence() 1104 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi)); in CreateWideIV() local 1105 if (!AddRec) in CreateWideIV() 1110 SE->getSignExtendExpr(AddRec, WideType) : in CreateWideIV() 1111 SE->getZeroExtendExpr(AddRec, WideType); in CreateWideIV() [all …]
|
/external/llvm/lib/Transforms/Scalar/ |
D | IndVarSimplify.cpp | 1162 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence() local 1165 if (!AddRec || AddRec->getLoop() != L) in getExtendedOperandRecurrence() 1167 return AddRec; in getExtendedOperandRecurrence() 1189 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence() local 1190 if (!AddRec || AddRec->getLoop() != L) in getWideRecurrence() 1192 return AddRec; in getWideRecurrence() 1398 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi)); in createWideIV() local 1399 if (!AddRec) in createWideIV() 1404 SE->getSignExtendExpr(AddRec, WideType) : in createWideIV() 1405 SE->getZeroExtendExpr(AddRec, WideType); in createWideIV() [all …]
|
D | LoopInterchange.cpp | 313 const SCEVAddRecExpr *AddRec = in getInductionVariable() local 315 if (!AddRec || !AddRec->isAffine()) in getInductionVariable() 317 const SCEV *Step = AddRec->getStepRecurrence(*SE); in getInductionVariable()
|
/external/llvm/test/Analysis/Delinearization/ |
D | multidim_only_ivs_2d.ll | 13 ; AddRec: {{0,+,(%m * 8)}<%for.i>,+,8}<%for.j> 20 ; AddRec: {{%A,+,(8 * %m)}<%for.i>,+,8}<%for.j>
|
D | divide_by_one.ll | 13 ; AddRec: {{(-1 + ((1 + %bs) * %stride)),+,(-1 * %stride)}<%for.cond1.preheader>,+,1}<nw><%for.body… 19 ; AddRec: {{(%stride * %bs),+,(-1 * %stride)}<%for.cond1.preheader>,+,1}<nw><%for.body3>
|
D | type_mismatch.ll | 6 ; function tries to create an AddRec where the start and step are different
|
D | iv_times_constant_in_subscript.ll | 11 ; AddRec: {{((%m * %b * 8) + %A),+,(2 * %m * 8)}<%for.i>,+,(2 * 8)}<%for.j>
|
D | multidim_only_ivs_3d.ll | 11 ; AddRec: {{{%A,+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j>,+,8}<%for.k>
|
D | multidim_ivs_and_integer_offsets_3d.ll | 11 ; AddRec: {{{(56 + (8 * (-4 + (3 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j>,+,…
|
D | multidim_ivs_and_parameteric_offsets_3d.ll | 11 ; AddRec: {{{((8 * ((((%m * %p) + %q) * %o) + %r)) + %A),+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.…
|
D | multidim_only_ivs_3d_cast.ll | 10 ; AddRec: {{{%A,+,(8 * (zext i32 %m to i64) * (zext i32 %o to i64))}<%for.i>,+,(8 * (zext i32 %o to…
|
D | a.ll | 10 ; AddRec: {{{(28 + (4 * (-4 + (3 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(12 * %o)}<%for.j>,+…
|
D | multidim_ivs_and_integer_offsets_nts_3d.ll | 11 ; AddRec: {{{(56 + (8 * (-4 + (3 * %m)) * (%o + %p)) + %A),+,(8 * (%o + %p) * %m)}<%for.cond4.prehe…
|
D | multidim_only_ivs_2d_nested.ll | 18 ; AddRec: {{%vla.us,+,{8,+,8}<%for.cond7.preheader.lr.ph.split.us.us>}<%for.body9.lr.ph.us.us>,+,8}…
|
D | himeno_1.ll | 29 ; AddRec: {{{(4 + (4 * (sext i32 %a.deps to i64) * (1 + (sext i32 %a.cols to i64))) + %a.base),+,(4…
|
D | himeno_2.ll | 29 ; AddRec: {{{(4 + (4 * (sext i32 %a.deps to i64) * (1 + (sext i32 %a.cols to i64))) + %a.base),+,(4…
|
/external/llvm/test/Transforms/LoopStrengthReduce/ |
D | 2012-01-02-nopreheader.ll | 10 ; This involves a nested AddRec, the outer AddRec's loop invariant components
|
D | ivchain.ll | 4 ; A sign extend feeds an IVUser and cannot be hoisted into the AddRec.
|
/external/llvm/test/Transforms/LoopVectorize/AArch64/ |
D | backedge-overflow.ll | 5 ; icmp with one of the sides being a loop varying non-AddRec expression. 6 ; However, there is a possibility to normalize this to an AddRec expression
|
/external/llvm/test/Analysis/ScalarEvolution/ |
D | scev-expander-existing-value.ll | 3 ; SCEV expansion uses existing value when the SCEV has no AddRec expr.
|
/external/llvm/test/Transforms/LoopSimplify/ |
D | ashr-crash.ll | 15 ; inconsistent with the AddRec.
|
/external/llvm/test/Transforms/SLPVectorizer/X86/ |
D | consecutive-access.ll | 120 ; Similar to the previous tests, but now we are dealing with AddRec SCEV.
|