Lines Matching defs:loopInfo
52 LoopUnrollInfo& loopInfo) {
72 if (!ConstantFolder::GetConstantValue(*initDecl.value(), &loopInfo.fStart)) {
76 loopInfo.fIndex = &initDecl.var();
80 expr->as<VariableReference>().variable() == loopInfo.fIndex;
131 if (!ConstantFolder::GetConstantValue(*next.right(), &loopInfo.fDelta)) {
136 case Token::Kind::TK_MINUSEQ: loopInfo.fDelta = -loopInfo.fDelta; break;
147 case Token::Kind::TK_PLUSPLUS: loopInfo.fDelta = 1; break;
148 case Token::Kind::TK_MINUSMINUS: loopInfo.fDelta = -1; break;
159 case Token::Kind::TK_PLUSPLUS: loopInfo.fDelta = 1; break;
160 case Token::Kind::TK_MINUSMINUS: loopInfo.fDelta = -1; break;
178 loopInfo.fCount = 0;
182 loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta,
187 loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta,
192 loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta,
197 loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta,
202 float iterations = sk_ieee_double_divide(loopEnd - loopInfo.fStart, loopInfo.fDelta);
203 loopInfo.fCount = std::ceil(iterations);
204 if (loopInfo.fCount < 0 || loopInfo.fCount != iterations ||
207 loopInfo.fCount = kLoopTerminationLimit;
212 if (loopInfo.fStart == loopEnd) {
214 if (loopInfo.fDelta) {
216 loopInfo.fCount = 1;
219 loopInfo.fCount = kLoopTerminationLimit;
223 loopInfo.fCount = 0;
230 SkASSERT(loopInfo.fCount >= 0);
231 if (loopInfo.fCount >= kLoopTerminationLimit) {